描述
Reactor编程是一种与数据流和变化的传播有关的异步编程范例。这意味着通过所采用的编程语言,可以容易地表达静态(例如,数组)或动态(例如,事件发射器)数据流。
Reactor是JVM的完全无阻塞的反应式编程基础,具有高效的需求管理(以管理“背压”的形式)。它直接与Java 8的功能API相结合,特别是完整的未来、流和持续时间。它提供了可组合的异步序列APIs Flux(用于[N]元素)和Mono(用于[0|1]元素),广泛实现了[Reactive Streams](http://www.reactive-streams.org/)规范。
Reactor还支持与reactor-netty项目无阻塞的进程间通信。适用于Microservices体系结构,Reactor Netty为HTTP(包括Websockets)、TCP和UDP提供备用背压网络引擎。完全支持反应性编码和解码。
在Reactor中,operators是我们装配中的工作站。每个运算符向发布者添加行为,并将前一步的发布者封装到新实例中。因此,整个链被链接起来,使得数据源自第一个发布者,并且沿着链向下移动,由每个链接进行转换。最终,用户完成该过程。请记住,直到订阅服务器订阅发布服务器,我们才会看到任何事情发生。
在Reactor中,当编写Publisher链时,默认情况下数据不会开始泵入。相反,您创建异步进程的抽象描述(这有助于重用性和组合)。
通过订阅的行为,您将发布者绑定到Subscriber,该Subscriber触发整个链中的数据流。这是通过来自Subscriber的单个请求信号在内部实现的,该请求信号在上游传播,一直传播回源Publisher。
网友评论