blog icon indicating copy to clipboard operation
blog copied to clipboard

发布-订阅模式(Pub-Sub)

Open penglongli opened this issue 7 years ago • 0 comments
trafficstars

发布-订阅模式

发布订阅模式建立在“一个发布者,多个订阅者”的基础上,发布者的状态变更订阅者能够接收到。通常结构图如下:

  • Publisher 发布者,将要发送的信息发送至 Topic 中
  • Topic 话题,消息的承载体,通常是队列的形式
  • Subscriber 订阅者,消费接收到的消息

Pub-Sub 与观察者模式

这两种设计模式是不相同的,参考文章:https://hackernoon.com/observer-vs-pub-sub-pattern-50d3b27f838c

他们之间最大的不同是:

  • 观察者模式:需要让 Subject 主题知道有哪些观察者
  • Pub-Sub 模式:Publisher 不需要知道有哪些人订阅了消息

示例

以公司开会为例子,公司有北京、上海、深圳三个地方。在以前开会的时候,公司人事会一个个通知北京、上海、深圳三个办公室的人(观察者模式)。现在高级了一点,公司人事直接在钉钉上发了一条消息,然后北京、上海、深圳三个办公室的人就知道了(发布-订阅模式)

penglongli avatar Apr 18 '18 10:04 penglongli