1. 前言
最近写关于响应式编程的东西有点多,不少同窗反映对Flux和Mono这两个Reactor中的概念有点懵逼。可是目前Java响应式编程中咱们对这两个对象的接触又最多,诸如Spring WebFlux、RSocket、R2DBC。我开始也对这两个对象头疼,因此今天咱们就简单来探讨一下它们。html
2. 响应流的特色
要搞清楚这两个概念,必须说一下响应流规范。它是响应式编程的基石。他具备如下特色:java
响应流必须是无阻塞的。
响应流必须是一个数据流。
它必须能够异步执行。
而且它也应该可以处理背压。
背压是反应流中的一个重要概念,能够理解为,生产者能够感觉到消费者反馈的消费压力,并根据压力进行动态调整生产速率。形象点能够按照下面理解:react
3. Publisher
因为响应流的特色,咱们不能再返回一个简单的POJO对象来表示结果了。必须返回一个相似Java中的Future的概念,在有结果可用时通知消费者进行消费响应。编程
Reactive Stream规范中这种被定义为Publisher ,Publis