通过示例学习Reactor - 好的程序是一件艺术品

1. 响应式编程的本质

响应式编程本质上是一个发布-订阅模式,其核心类如下图所示。
其中Publisher是发布者、Subscriber是订阅者、Subscription记录发布-订阅关系。
在这里插入图片描述
其相互调用关系如下图所示。
在这里插入图片描述

2. 响应式编程的处理流程

2.1 响应式编程的处理阶段

响应式编程的处理流程分为以下几个阶段。

  1. 声明阶段 : 定义发布者,通过装饰模式对发布者进行层层包装
  2. subcribe阶段: 定义订阅者,通过装饰模式对订阅者进行层层包装,订阅者的包装顺序跟发布者是相反的
  3. onSubcribe阶段(subscription阶段):建立发布-订阅关系
  4. request阶段:从最末级订阅者逐级驱动,触发发布者进行消息发布。(属于pull)
  5. process阶段:逐级触发订阅者进行消息处理。(属于push)

2.2通过示例演示处理流程

Flux.just("tom", "jack", "allen")
    .map(s -> s.concat("@qq.com"))
    .filter(s -> s.startsWith("tom"))
    .subscribe(System.out::println);

以上语句执行时各阶段的处理过程如下图所示。
在这里插入图片描述

参考

由表及里学 ProjectReactor
Reactor之发射器(Flux、Mono)创建函数
关于Mono和Flux的理解
使用 Reactor 进行反应式编程
reactor3 源码分析
reactive-streams-jvm
Reactor 3 Reference Guide
Reactor 3 参考文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值