project-reactor 框架
概述
真正的响应式,服务端实现,实现了 Reactive Streams 规范
what’s reactor
一个基于事件,异步处理高并发服务请求的框架,集成了 java 8的 函数式 api
- CompletableFuture
- Steam
- Duration
通过reactor-netty支持非阻塞进程间通信
- 适合微服务架构
- Reactor Netty 提供 HTTP(包括 Websockets), TCP, UDP 的背压就绪网络引擎
hot/cold
- cold 为每一个订阅都重新生成数据,从头开始,总能收到产生的全部数据
- defer(每次订阅都是相同的返回)
- hot 持续不断的产生消息,订阅者只能获取订阅之后产生的消息
- just
- share
- replay
- cold 为每一个订阅都重新生成数据,从头开始,总能收到产生的全部数据
提供 Flux/Mono
- return 一个 mono, 先返回 mono ,这个 mono 包装好各种方法, 把 方法放到调用里面,看起来是异步,实际上同步,只不过阻塞是发生在 Web 容器(Netty)里面
- Router
- 约等于 @Controller + @RequestMapping
- Handler
- controller 里面的方法
- create
- 可以创建 Mono, Flux,异步
- generate
- 只能生成 Flux,同步
- Disposable
- cancel-and-clean-up,stop producing values and clean up any resources it created
Mono
- onNext 和 onError 不能同时用,因为最多一个 single
弹珠图
project-reactor 框架