Reactor 响应式编程简述 03

Reactor 响应式编程简述 03

概述:Reactive Streams/Reactor/WebFlux 三者的关系

对于Reactive Streams 的概念,之前在这篇文章中介绍过,现在对比一下标题中三个概念的关系。

  • Reactive Streams 是一套规范,为反应式编程做了标准化。
  • Reactor 是基于Reactive Streams 的一套反应式编程框架。
  • WebFlux 是以Reactor 为基础,是一个“反应式编程”的web 框架。

对于我们日常的开发,目前业界主流的还是基于Servlet的MVC 框架,所以业务开发中,如果使用到了反应式编程的思想,通常只会接触到Publisher 接口,而对应到Reactor 框架即使实现了这个接口的Mono和Flux
对于“订阅者Subscriber”和“订阅Subscription”这两个接口,Reactor框架也有对应的实现,但是这些都是Spring WebFlux和Spring Data Reactive 这种框架用到的。加入不是开发中间件,对于这两个框架,我们目前还接触不到。所以我们主要把精力集中在Mono和Flux上面就好。

对于Reactor 的使用,基本分为三个步骤:

  • 创建阶段(开始)
  • 处理阶段(中间)
  • 消费阶段(结束)

但是对于我们日常开发,创建和消费的流程使用的不太多,但是我们也要了解这些阶段是如何开发的。

一、创建Mono 和Flux(开始)

如果想使用Reactor ,那么必然要先以创建出Mono或者Flux 开始。

有时候可能不需要我们自己创建,而是实现某些框架或者接口得到一个Mono或者Flux。但是有的时候,需要我们手动创建一个Mono或者Flux。

可以这么创建:

二、Mono和Flux 处理阶段(中间)

主要的方法

  1. filter
  2. map
  3. flatmap
  4. then
  5. zip
  6. reduce 当我们看到这些方法的时候,会发现有点眼熟,其实Stream 中的方法类似。

2.1 map、flatMap、then 的使用场景

MonoFlux 的中间环节的处理过程中,有三个比较类似的方法,分别是map()、flatMap()、then()。这三个方法在日常的开发过程中,使用频率很高。
这里我们对比传统编程方式(命令式)和反应式编程方式。
传统的编程方式如下,每一步执行的结果,作为下一步执行的参数:

Object firstResult = doStep1(p
  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值