月薪两万程序员应该知道的编程模型( 二 )


在Reactor框架中用两个类来表示Publisher,分别是Flux和Mono 。Flux表示0...N个元素序列;Mono表示零或一个元素序列 。
Flux/Mono可以发布三类值 正常数值,异常信号,完成信号 。三类信号不会同时存在,最多同时发布两类信号 。
举个例子,我们假设让Flux发射一个1-6的6个整数的数字流,6个数字流发送完成后,会紧跟着发送一个完成信号,告诉订阅者或者观察者,数据流完成 。同样的,如果发送正常数据的过程中出现异常,也可以发送一个异常信号给订阅者或者观察者,表示出现异常,将停止发送 。异常信号和完成信号不能同时存在,因为出现任何一个该数据流都将结束 。但是信号流里面可以即没有异常信号也没有完成信号,这表示该流是一个无限流 。
Flux.just(1,2,3,4,5,6)
上面这行代码表示发布者发布了6条消息,下面我们订阅者6条消息,也就是对这6条消息进行响应 。
Flux.just(1,2,3,4,5,6).subscribe(System.out::print)
在控制台将会打印出1,2,3,4,5,6 。


推荐阅读