Reactor:构建响应式快速数据应用程序的开发库

projectreactor

Reactor是第二代响应式开发库,支持构建基于JVM的非阻塞式应用程序,遵循Reactive Streams规范

主要特性

REACTIVE CORE

Reactor完全非阻塞式通信基础框架,支持高效按需管理。它可以用Java 8 functional API、Completable FutureStream 和 Duration直接交互。

TYPED [0|1|N] 序列

Reactor提供了两种响应式AP组合 Flux [N] 和 Mono [0|1] 实现了丰富的Reactive扩展。Reactor还通过Bus扩展支持可扩展的内存路由。

非阻塞IO

适用微服务架构, Reactor IO提供了带反向压力(backpressure)的网络引擎,支持HTTP(包括Websockets)、TCP和UDP。非阻塞IO还完全支持响应式编码和解码。

高效消息传输

Reactor Processors、Operators 和 Timers 可以持续提供高传输吞吐率,每秒传输的消息数量可达到10的百万次方。低内存开销也是Reactor让大家青睐的原因之一。不仅如此,Reactor还是正在进行的研究项目的一部分,该项目旨在对传输流程做进一步优化。

易于使用

作为响应式引擎和SPI,Reactor Core 和 IO模块可以根据具体用例构建响应式数据流,并且还支持与SpringRxJavaAkka StreamsRatpack等框架集成。作为响应式API,Reactor框架模块还提供了像组合(composition)和事件发布订阅这样的丰富特性。

延迟守护者

水平扩展是降低延迟、解决微服务速度慢的一个重要工具。通过支持异步结构的水平扩展,Cloud Native app可以获得更好的效果。为了支持这样的设计,Reactor提供了非阻塞式和带有反向压力的嵌入式解决方案,包括本地和远程单播、多播消息通信,或者TCP、HTTP、UDP客户端和服务器。

项目结构

org3

Reactor Core

APP和框架响应式支持基础,受 Mono(1元素)和Flux (n元素)启发提供了丰富的响应式API扩展:

Reactor IO

2.5.0.BUILD-SNAPSHPOT

Reactor Addons

2.5.0.BUILD-SNAPSHPOT

Reactor Incubator

2.5.0.BUILD-SNAPSHPOT

Reactive Streams Commons

在为Reactive Streams设计高效并发操作符的工作中提出了公用基础代码项目,即Reactive Streams Commons。Reactor完全符合RSC设计理念,在reactor-core稳定版API中直接使用了RSC。Reactive Streams Commons旨在为大家提供了一种高效流处理解决方案,因此从设计开始就确保不依赖其它框架。

注册

可以随时加入、fork、讨论和PR。在项目的路线图中就采取了协作方式,我们欢迎新点子、简化建议、文档、反馈。

Maven

最新的快照和发布文件在 repo.spring.io 中提供。稳定版会同步到Maven中央仓库。把这个仓库加入到Gradle构建,指定下面的URL:

开始

将Reactor添加到现有项目,只需把配置好的文件添加到项目中。像Fluxand Mono 这样的Reactor基础组件已经包含在reactor-core 中。附加组件由reactor-aeron、reactor-netty、reactor-pipes、reactor-bus和reactor-pylon提供。

build.gradle
  1. 取消注释使用发布版本。
  2. 取消注释使用里程碑版本。
  3. 取消注释使用快照版本。

添加reactor-core到项目后,可以使用Flux、 Mono和availableProcessor创建事件序列执行带有反向压力(backpressure)的异步操作。

开发资源

协议

Reactor遵循Apache 2.0开源协议发布。

官方网站:http://projectreactor.io/
开源地址:https://github.com/reactor

打赏支持我整理更多优质资源,谢谢!

打赏编辑

打赏支持我整理更多优质资源,谢谢!

任选一种支付方式

1 收藏

资源整理者简介:唐尤华

做自己喜欢的,编程、喝茶、看世界 个人主页 · 贡献了108个资源 · 18 ·    


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer