BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Pivotal Reactor发布1.0

| 作者 Dan Woods 关注 1 他的粉丝 ,译者 孙镜涛 关注 2 他的粉丝 发布于 2013年11月27日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Pivotal恰当命名的开源反应式编程类库“Reactor”到达了一个里程碑,该类库于最近对外发布了1.0版本。Reactor为事件驱动、反应式编程模型提供了一个低级别的抽象,同时它还是Spring IO平台的一个组件成员,在它的“IO基础”层。

虽然Reactor的内部并没有直接依赖于Spring框架,但是Reactor是作为Spring IO平台的一个基础组件而设计的。该项目的wiki中提到,它能够借助于“reactor-spring”模块为Spring提供“开箱即用的支持”,但是核心API是作为一个自包含的类库提供的,同时可以在一个Spring应用程序上下文的外部使用。

开发者能够借助于Reactor构建高吞吐量、低延迟时间的应用程序,这类应用程序每秒钟可能必须处理几千、几万或者甚至是几百万的并发请求。实际上,在宣布该版本发布的博客文章中提到,在一台标准的开发者笔记本上Reactor每秒钟能够处理“一千到一千五百万事件”。该博客文章还提醒大家一定要注意,无论如何“Reactor是否能够快速运转一定程序上取决于任务”。

Reactor中的很多灵感来源于Reactor设计模式,该模式为异步事件的分发和处理定义了一个模型。但是该模式并不是构建Reactor的唯一灵感源泉,发布说明中提到其他的灵感来源于很多开源项目和类库,包括即将发布的Java 8。Reactor从这些领域借鉴了一些理念以便于为Streams和Promises这样的异步编程技术提供抽象。

为了简化与它的集成,Reactor为许多流行的类库和语言提供了内置的良好支持。随着对自己宣传口号“快速数据(Fast Data)”的强化,该项目确信公众能够注意到它的高吞吐量LMAX Disruptor API(为了创建超高性能的金融交易而设计)。

项目的“reactor-tcp”模块提供了一个由Netty支持的TCP客户端和服务器API。Netty是一个JVM网络类库,它提供了一个“异步事件驱动的网络应用程序框架和工具……可用于高性能和高扩展性程序”。

它提供语法简化并支持函数式编程技术,将Groovy作为一流语言提供支持,包括使用闭包作为回调。Reactor提供了一个综合的Groovy DSL,用户能够通过该DSL享受简化的配置体验。Java 8也是作为一流语言提供支持的,通过Reactor的API可以利用lambda表达式,还能将方法引用作为回调。Clojurewerkz项目,Meltdown,提供了一个从Clojure到Reactor的接口。Reactor团队强调类库的API已经被设计为可扩展的…所以非JVM语言也能够从它的产品中受益。

Reactor的源码可以免费从GitHub上获取到,它是基于Apache许可的。另外,还可以获取到quickstart和示例项目,通过具体的示例指导新手入门。最近重新设计的Spring.IO 网站上的指南部分还提供了一个全面的“入门”教程

用户还可以从Maven Central上获取到针对各种Reactor模块的Maven构件,这在发布说明的底部有提到。

查看英文原文Pivotal's Reactor Goes GA

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT