Reactor学习笔记

10次阅读

共计 792 个字符,预计需要花费 2 分钟才能阅读完成。

本文基于:https://htmlpreview.github.io…://github.com/get-set/reactor-core/blob/master-zh/src/docs/index.html#flux
1 Reactor 简介
Reactor 是一个用于 JVM 的完全非阻塞的响应式编程框架,具备高效的需求管理能力。与 Java8 函数式 API 直接集成(CompletableFuture,Stream 以及 Duration)。它提供了异步序列 API Flux(用于 N 个元素)和 Mono(用于 0 | 1 个元素)。适用于微服务架构,并且完整支持响应式编解码。
2 响应式编程
Reactor 是响应式编程范式的实现。响应式编程通常作为面向对象编程中的观察者模式的一种扩展。Reactor 主要是弥补一些经典的 JVM 异步方式所带来的不足,此外还关注几个方面:

可编排性以及可读性
使用丰富的操作符阿里处理形如流的数据
在订阅(subscribe)之前什么都不会发生
背压(backpressure)具体来说就是消费者能够反向告知生产者生产内容的速度的能力
高层次的抽象,从而达到并发无关的效果

3 Reactor 核心特性
3.1 Flux,包含 0 - N 个元素的异步序列
Flux<T> 是一个能够发出 0 到 N 个元素的标准的 Publisher<T>,它会被一个”error”或者“completion”信号终止,因此,一个 flux 的可能结果是一个 value、completion 或 error。
3.2 Mono,异步的 0 - 1 结果
Mono<T> 是一种特殊的 Publisher<T>,它最多发出一个元素,然后终止于一个 onComplete 信号或一个 onError 信号。它只适用其中一部分可用于 Flux 的操作。比如,(两个 Mono 的)结合类操作可以忽略其中之一而发出另一个 Mono,也可以将两个都发出,对于后一种情况会切换为一个 Flux。

正文完
 0