## 什么是Reactor `Reactor`是基于[Reactive Streams](https://github.com/reactive-streams/reactive-streams-jvm)的第四代反应式库规范实现,用于在`JVM`上构建非阻塞应用程序。`Spring WebFlux`中集成的是`Reactor3.0`。 </br> 官网地址:[https://projectreactor.io/](https://projectreactor.io/) `Reactor`项目的主要核心库是`reactor-core`,这是一个专注于`Reactive Streams`规范的反应式库,`java`版本要求`java8+`。 </br> `Reactor`引入`Publisher`的可组合反应式类型,但也提供了丰富的运算符词汇表:`Flux`和`Mono`。`Flux`对象表示一个`0..N`个元素的反应式序列。而`Mono`对象表示单值或空`(0..1)`结果。 </br> 2者的区别在类型中包含了一些语义信息,指示异步处理的大致基数。例如,一个`HTTP`请求只产生一个响应,因此进行计数操作没有多大意义。因此,将这样一个`HTTP`调用的结果表示为`Mono<HttpResponse>`比将其表示为`Flux<HttpResponse>`更有意义,因为它只提供了与`0`项或`1`项上下文相关的操作符。 </br> 更改处理的最大基数的操作符也切换到相关类型。例如,`count`操作符存在于`Flux`中,但它返回`Mono<Long>`。 </br>