blog
blog copied to clipboard
发布-订阅模式(Pub-Sub)
trafficstars
发布-订阅模式
发布订阅模式建立在“一个发布者,多个订阅者”的基础上,发布者的状态变更订阅者能够接收到。通常结构图如下:

- Publisher 发布者,将要发送的信息发送至 Topic 中
- Topic 话题,消息的承载体,通常是队列的形式
- Subscriber 订阅者,消费接收到的消息
Pub-Sub 与观察者模式
这两种设计模式是不相同的,参考文章:https://hackernoon.com/observer-vs-pub-sub-pattern-50d3b27f838c
他们之间最大的不同是:
- 观察者模式:需要让 Subject 主题知道有哪些观察者
- Pub-Sub 模式:Publisher 不需要知道有哪些人订阅了消息
示例
以公司开会为例子,公司有北京、上海、深圳三个地方。在以前开会的时候,公司人事会一个个通知北京、上海、深圳三个办公室的人(观察者模式)。现在高级了一点,公司人事直接在钉钉上发了一条消息,然后北京、上海、深圳三个办公室的人就知道了(发布-订阅模式)