Spring WebFlux响应式编程:spring webflux 是随着Spring 5推出的响应式web编程框架。
Flux 英文含义:流量,流出。
传统的编程模型
传统的编程模型采用的是每条指令依次执行的方式,如果上一条指令没有执行完,当前线程等待,在多线程编程中,也是按照代码编写的先后顺序执行的。
若要实现快速响应,就得把程序执行指令的方式换一换——将同步方式换成异步方式,改成消息发送,因此诞生了响应式编程模型。
响应式编程模型(Reactive Programming)
业务场景按照数据流的形式建模,可以分为:普通的内存计算、数据库操作、远程调用。
设计原则:
- 保持数据的不变性。
- 没有共享。
- 阻塞是有害的。
Reactor
Reactor是第四代Reactive库,基于Reactive Streams规范在JVM上构建非阻塞应用程序。
Reactor侧重于服务器端响应式编程,是一个基于java 8 实现的响应式流规范响应式库。
数据流发布者(Publisher)由Flux和Mono两个类表示,他们都提供了丰富的操作符(operator)。一个flux对象,代表一个包含0个或多个(0..N)元素的响应式序列。一个mono对象,代表一个包含0或一个(0..1)元素的结果。
作为数据流发布者,Flux和Mono都可以发出三种数据信号,元素值、错误信号、完成信号。
创建数据流:
Flux.just()
Mono.just()
订阅:
subscribe()