文章源自JAVA秀-https://www.javaxiu.com/1035.html
Reactor是第二代响应式开发库,支持构建基于JVM的非阻塞式应用程序,遵循Reactive Streams规范。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.1 主要特性
1.1.1 REACTIVE CORE
Reactor完全非阻塞式通信基础框架,支持高效按需管理。它可以用Java 8 functional API、Completable Future、Stream 和 Duration直接交互。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.1.2 TYPED [0|1|N] 序列
Reactor提供了两种响应式AP组合 [Flux N] 和 [Mono 0|1] 实现了丰富的Reactive扩展。Reactor还通过Bus扩展支持可扩展的内存路由。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.1.3 非阻塞IO
适用微服务架构,Reactor IO提供了带反向压力(backpressure)的网络引擎,支持HTTP(包括Websockets)、TCP和UDP。非阻塞IO还完全支持响应式编码和解码。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.1.4 高效消息传输
Reactor Processors、Operators 和 Timers 可以持续提供高传输吞吐率,每秒传输的消息数量可达到10的百万次方。低内存开销也是Reactor让大家青睐的原因之一。不仅如此,Reactor还是正在进行的研究项目的一部分,该项目旨在对传输流程做进一步优化。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.1.5 易于使用
作为响应式引擎和SPI,Reactor Core 和 IO模块可以根据具体用例构建响应式数据流,并且还支持与Spring、RxJava、Akka Streams、Ratpack等框架集成。作为响应式API,Reactor框架模块还提供了像组合(composition)和事件发布订阅这样的丰富特性。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.1.6 延迟守护者
水平扩展是降低延迟、解决微服务速度慢的一个重要工具。通过支持异步结构的水平扩展,Cloud Native app可以获得更好的效果。为了支持这样的设计,Reactor提供了非阻塞式和带有反向压力的嵌入式解决方案,包括本地和远程单播、多播消息通信,或者TCP、HTTP、UDP客户端和服务器。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2 项目结构
文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.1 Reactor Core
APP和框架响应式支持基础,受 Mono(1元素)和Flux (n元素)启发提供了丰富的响应式API扩展:文章源自JAVA秀-https://www.javaxiu.com/1035.html
https://github.com/reactor/reactor-core文章源自JAVA秀-https://www.javaxiu.com/1035.html
文档:http://projectreactor.io/core/docs/reference文章源自JAVA秀-https://www.javaxiu.com/1035.html
API:http://projectreactor.io/core/docs/api文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.2 Reactor IO
2.5.0.BUILD-SNAPSHPOT文章源自JAVA秀-https://www.javaxiu.com/1035.html
https://github.com/reactor/reactor-io:文章源自JAVA秀-https://www.javaxiu.com/1035.html
文档:http://projectreactor.io/io/docs/reference文章源自JAVA秀-https://www.javaxiu.com/1035.html
API:http://projectreactor.io/io/docs/api文章源自JAVA秀-https://www.javaxiu.com/1035.html
子模块:文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-ipc:内存和InterProcessCommunication抽象。文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-aeron:高效的单播或多播通信。文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-codec:JSON、压缩、Kryo、Protobuf编解码器。文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-netty:TCP和HTTP客户端及服务器。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.3 Reactor Addons
文章源自JAVA秀-https://www.javaxiu.com/1035.html
https://github.com/reactor/reactor-addons文章源自JAVA秀-https://www.javaxiu.com/1035.html
文档: http://projectreactor.io/ext/docs/reference文章源自JAVA秀-https://www.javaxiu.com/1035.html
API:http://projectreactor.io/ext/docs/api文章源自JAVA秀-https://www.javaxiu.com/1035.html
子模块:文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-alloc文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-bus文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-logback文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-pylon文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-pipes文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.4 Reactor Incubator
2.5.0.BUILD-SNAPSHPOT文章源自JAVA秀-https://www.javaxiu.com/1035.html
https://github.com/reactor/reactor-incubator文章源自JAVA秀-https://www.javaxiu.com/1035.html
子模块:文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-amqp文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-chronicle文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-groovy文章源自JAVA秀-https://www.javaxiu.com/1035.html
reactor-net-0mq文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.5 Reactive Streams Commons
在为Reactive Streams设计高效并发操作符的工作中提出了公用基础代码项目,即Reactive Streams Commons。Reactor完全符合RSC设计理念,在reactor-core稳定版API中直接使用了RSC。Reactive Streams Commons旨在为大家提供了一种高效流处理解决方案,因此从设计开始就确保不依赖其它框架。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.5.1 注册
可以随时加入、fork、讨论和PR。在项目的路线图中就采取了协作方式,我们欢迎新点子、简化建议、文档、反馈。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.2.5.2 Maven
最新的快照和发布文件在 repo.spring.io 中提供。稳定版会同步到Maven中央仓库。把这个仓库加入到Gradle构建,指定下面的URL:文章源自JAVA秀-https://www.javaxiu.com/1035.html
XHTML文章源自JAVA秀-https://www.javaxiu.com/1035.html
repositories { //maven { url 'http://repo.spring.io/libs-release' } //maven { url 'http://repo.spring.io/libs-milestone' } maven { url 'http://repo.spring.io/libs-snapshot' } mavenCentral() } dependencies { // Reactor Core compile "io.projectreactor:reactor-core:2.5.0.BUILD-SNAPSHOT" // Reactor Aeron // compile "io.projectreactor:reactor-aeron:2.5.0.BUILD-SNAPSHOT" // Reactor Pipes // compile "io.projectreactor:reactor-pipes:2.5.0.BUILD-SNAPSHOT" // Reactor Netty4 // compile "io.projectreactor:reactor-netty:2.5.0.BUILD-SNAPSHOT" // Reactor Codecs (Jackson, Kryo...) // compile "io.projectreactor:reactor-codec:2.5.0.BUILD-SNAPSHOT" }
1.3 开始
将Reactor添加到现有项目,只需把配置好的文件添加到项目中。像Flux
and Mono
这样的Reactor基础组件已经包含在reactor-core
中。附加组件由reactor-aeron、reactor-netty、reactor-pipes、reactor-bus和reactor-pylon提供。
文章源自JAVA秀-https://www.javaxiu.com/1035.html
build.gradle文章源自JAVA秀-https://www.javaxiu.com/1035.html
repositories { // maven { url 'http://repo.spring.io/release' } // 1 // maven { url 'http://repo.spring.io/milestone' } // 2 maven { url 'http://repo.spring.io/snapshot' } // 3 } dependencies { //Core stuff (Flux, Mono, Schedulers...) compile "io.projectreactor:reactor-core:2.5.0.M3" //Everything Routing (Event Bus) //compile "io.projectreactor:reactor-bus:2.5.0.BUILD-SNAPSHOT" //Netty TCP/HTTP/UDP client/servers //compile "io.projectreactor:reactor-netty:2.5.0.BUILD-SNAPSHOT" //compile "io.netty:netty-all:4.0.34.final" //Reactive Aeron client/servers //compile "io.projectreactor:reactor-aeron:2.5.0.BUILD-SNAPSHOT" }
- 取消注释使用发布版本。
- 取消注释使用里程碑版本。
- 取消注释使用快照版本。
添加reactor-core到项目后,可以使用Flux、Mono和availableProcessor创建事件序列执行带有反向压力(backpressure)的异步操作。文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.4 开发资源
- 文档
Reactor Core文章源自JAVA秀-https://www.javaxiu.com/1035.html
Reactor IO文章源自JAVA秀-https://www.javaxiu.com/1035.html
Reactor Addons文章源自JAVA秀-https://www.javaxiu.com/1035.html
Reactor 2.0(早期版本)文章源自JAVA秀-https://www.javaxiu.com/1035.html
资源文章源自JAVA秀-https://www.javaxiu.com/1035.html
ReactiveX文章源自JAVA秀-https://www.javaxiu.com/1035.html
Reactive Streams文章源自JAVA秀-https://www.javaxiu.com/1035.html
Spring指南文章源自JAVA秀-https://www.javaxiu.com/1035.html
社区文章源自JAVA秀-https://www.javaxiu.com/1035.html
1.5 协议
Reactor遵循Apache 2.0开源协议发布。文章源自JAVA秀-https://www.javaxiu.com/1035.html
官方网站:http://projectreactor.io/ 开源地址:https://github.com/reactor文章源自JAVA秀-https://www.javaxiu.com/1035.html

评论