发布-订阅模式
- 特点
- 一对多的模式
- 基于事件
- 传统的请求/响应模式的缺点
- 生产者调用消费者,随着消费者变多,生产者需要改动,这就是耦合性
- 消费者调用生产者,生产者的负载与消费者成正比
- 优点
- 解耦合 : 两个应用不需要相互调用
- 可扩展性 : 消费者的个数可实时扩展
- 实时性 : 消费者能实时的获取生产者发布的事件
- 高效 :减少由于多个消费者请求数据造成的数据计算带来的资源消耗
- 异步通讯 :发布-订阅模式是天生的异步通讯
- 应用范围
- 适合数据一被生产,就需要被处理的情况
- 适合数据具有潜在消费者的情况
- 适合无论有没有消费者,数据都在主动生产的情况
- 不适合对数据的处理时间有特殊限定的情况
- 挑战
- 事件驱动和异步编成会带来一定的复杂度,需要谨慎选择
- 需要确保各个流程有很好的监控,有服务跟踪