响应式编程的优势

  • 不用Thread per Request模型,使用少量线程即可处理大量的请求。
  • 在执行I/O操作时不让线程等待。
  • 简化并行调用。
  • 支持背压,让客户端告诉服务端它可以处理多少负载。

响应式系统应用的设计目标

  • 响应性(以时序的方式响应)
  • 健壮(即使发生错误也可以保证响应性)
  • 弹性(在不同的工作负载下保持响应性)
  • 消息驱动(依赖异步消息传递机制)

  • 流是一个时序事件序列,可以发射三种不同的事件:(某种类型的)错误或者一个完成信号
  • 分别为这三类事件定义事件处理函数,异步地处理事件。
  • 监听一个流称为订阅,定义的函数观察者,流是被观察者,即观察者模式。
  • 当调用其中一个方法时,它会基于原来的流返回一个新的流。它不会对原来的点击流作任何修改。这个特性称为不可变性,也可以对方法进行链式调用。