Files
rikako-note/spring/webflux/Reactor.md
2025-03-19 12:51:49 +08:00

1.2 KiB
Raw Blame History

Reactor

Reactive Programming

响应式编程是一种异步编程范式,关注于数据流状态变化的传播。java的响应式编程接口被包含在java9的Flow中。

响应式编程范式和观察者设计模式类似,相比于迭代器模式,用户可以选择何时调用next方法reactive stream是基于发布/订阅模型的。

迭代器模式是pull-based而reactive stream为push-based

命令式迁移到响应式所解决的问题

可组合性与可读性

“可组合性"代表编排多个异步任务的能力通过“组合”可以将前一个异步任务的输出作为后一个异步任务的输入。或者可以按照fork-join的形式对异步任务进行编排。

reactor同样能解决“可读性”的问题在使用传统的callback model编写程序时随着逻辑的复杂异步进行的层数也会增加这将会极大降低代码的可读性和可维护性。

在使用call model时通常需要在回调中执行另一个回调回调的嵌套通通常会被称为callback heil

reactor提供了复杂的“组合”选项能够反映抽象异步进程的组织并且所有的内容通常都会位于同一层级。