响应式编程

响应式编程核心特征

  • 变化传递(propagation of change)
  • 基于数据流(data stream)
  • 声明式(declarative)

响应式流

  • 异步非阻塞
  • 流量控制

(ps Java Stream是一种同步API)

阻塞造成的性能损失,我们通常有两种思路来解决

  1. 并行化:使用更多的线程和硬件资源;
  2. 异步化:基于现有的资源来提高执行效率。

将输入转化为输出的过程中,处理速度小于输入速度的状态称为Backpressure
通常处理这种状态的策略有以下三种:

Buffer:将输入暂时保存下来

Drop:丢弃掉输入

Control:由消费者来控制生产者的速度