响应式编程核心特征
- 变化传递(propagation of change)
- 基于数据流(data stream)
- 声明式(declarative)
响应式流
- 异步非阻塞
- 流量控制
(ps Java Stream是一种同步API)
阻塞造成的性能损失,我们通常有两种思路来解决
- 并行化:使用更多的线程和硬件资源;
- 异步化:基于现有的资源来提高执行效率。
将输入转化为输出的过程中,处理速度小于输入速度的状态称为Backpressure
通常处理这种状态的策略有以下三种:
Buffer:将输入暂时保存下来
Drop:丢弃掉输入
Control:由消费者来控制生产者的速度