【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Pivotal Reactor 发布 1.0

  • 2013-11-26
  • 本文字数:1152 字

    阅读完需:约 4 分钟

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

2013-11-26 06:261625
用户头像

发布了 321 篇内容, 共 115.9 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

搞懂现代Web端即时通讯技术一文就够:WebSocket、socket.io、SSE

JackJiang

websocket 即时通讯 IM

LeetCode题解:897. 递增顺序搜索树,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

微型博客开发项目,手动创建导航组件的新增页面

梦想橡皮擦

9月日更

颇具年代感的《JMeter中文操作手册》

FunTester

Jmeter 性能测试 自动化测试 接口测试 FunTester

GetX代码生成IDEA插件,超详细功能讲解(透过现象看本质)

小呆呆666

学习Linux tar 命令:最简单也最困难

华为云开发者联盟

Linux 文件 Linux tar tar命令 存档

【VueRouter 源码学习】第五篇 - 两种路由模式的设计

Brave

源码 vue-router 9月日更

学会这5种JS函数继承方式,前端面试你至少成功50%

华为云开发者联盟

面试 大前端 js 继承 函数继承

腾讯云 TDSQL 审计原理揭秘

腾讯云数据库

数据库 tdsql

TLS协议分析 (五) handshake协议 证书与密钥交换

OpenIM

Vue进阶(壹佰):当前页面刷新并重载页面数据

No Silver Bullet

Vue 9月日更

如何在AI工程实践中选择合适的算法?

博文视点Broadview

使用GO语言实现Mysql数据库CURD

Regan Yue

数据库 Go 语言 9月日更

终于,基础软件领域的行业盛会来了!

Jessie

开源 云原生 基础软件 中间件 #数据库

Vue进阶(九十九):页面锚点至顶部

No Silver Bullet

Vue 9月日更

Retrofit源码解读HTTP

Changing Lin

android 9月日更

模块(三)如何设计出合理的架构

我是一只小小鸟

为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术 - 云+社区 - 腾讯云

腾讯云数据库

数据库 tdsql

【LeetCode】分割平衡字符串Java题解

Albert

算法 LeetCode 9月日更

直播预告:京东云DevOps与JFrog制品库的融合

京东科技开发者

DevOps 制品库管理 运维开发

【Flutter 专题】54 图解基本生命周期

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

TLS协议分析 (三) record协议

OpenIM

带你认识数据库视图对象,下次不要再认成“表”了

华为云开发者联盟

数据库 sql 对象 视图 GaussDB(DWS)

EMQ 映云科技与 RT-Thread 达成战略合作,共建产业物联网平台

EMQ映云科技

人工智能 云计算 大数据 物联网 emq

论亚马逊QLDB与腾讯TDSQL对历史数据的管理和计算

腾讯云数据库

数据库 tdsql

Rust从0到1-高级特性-宏

rust 高级特性 Macros

从源码角度分析 MyBatis 工作原理

vivo互联网技术

sql mybatis JDBC ORM

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

华为云开发者联盟

华为云数据库 时序数据 深度神经网络算法 DAEMON 轨迹分析

TLS协议分析 (四) handshake协议概览

OpenIM

朋友圈架构设计

XP

从 CI_CD 到 DevOps

SoFlu软件机器人

DevOps 自动化 基础软件

Pivotal Reactor发布1.0_语言 & 开发_Dan Woods_InfoQ精选文章