doc: reactor文档阅读
This commit is contained in:
18
spring/webflux/Reactor.md
Normal file
18
spring/webflux/Reactor.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 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提供了复杂的“组合”选项,能够反映抽象异步进程的组织,并且,所有的内容通常都会位于同一层级。
|
||||
|
||||
Reference in New Issue
Block a user