Reactor学习笔记

1 Reactor简介

Reactor是一个用于JVM的彻底非阻塞的响应式编程框架,具有高效的需求管理能力。与Java8函数式API直接集成(CompletableFuture,Stream以及Duration)。它提供了异步序列API Flux(用于N个元素)和Mono(用于0|1个元素)。适用于微服务架构,而且完整支持响应式编解码。html

2 响应式编程

Reactor是响应式编程范式的实现。
响应式编程一般做为面向对象编程中的观察者模式的一种扩展。
Reactor主要是弥补一些经典的JVM异步方式所带来的不足,此外还关注几个方面:react

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

3 Reactor核心特性

3.1 Flux,包含0-N个元素的异步序列

clipboard.png
Flux<T>是一个可以发出0到N个元素的标准的Publisher<T>,它会被一个”error”或者“completion”信号终止,所以,一个flux的可能结果是一个value、completion或error。git

3.2 Mono,异步的0-1结果

clipboard.png
Mono<T>是一种特殊的Publisher<T>,它最多发出一个元素,而后终止于一个onComplete信号或一个onError信号。
它只适用其中一部分可用于Flux的操做。好比,(两个Mono的)结合类操做能够忽略其中之一而发出另外一个Mono,也能够将两个都发出,对于后一种状况会切换为一个Flux。github

本文基于:https://htmlpreview.github.io...://github.com/get-set/reactor-core/blob/master-zh/src/docs/index.html#flux
推荐写的比较好的一篇文章:https://www.jianshu.com/p/7ee...编程

相关文章
相关标签/搜索