消息模型
点对点
消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。
![](https://github.com/CyC2018/CS-Notes/raw/master/docs/notes/pics/b28a7b1e-bf5a-4e23-8be7-701eacef0111.jpg)
发布/订阅
消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。
![](https://github.com/CyC2018/CS-Notes/raw/master/docs/notes/pics/1b718cd5-7b1e-496c-9133-2bfd12bb5f89.jpg)
发布与订阅模式和观察者模式有以下不同:
- 观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,发布者与订阅者不知道对方的存在,它们之间通过频道进行通信。
- 观察者模式是同步的,当事件触发时,主题会调用观察者的方法,然后等待方法返回;而发布与订阅模式是异步的,发布者向频道发送一个消息之后,就不需要关心订阅者何时去订阅这个消息,可以立即返回。
![在这里插入图片描述](https://github.com/CyC2018/CS-Notes/raw/master/docs/notes/pics/d011c697-2551-4968-ac51-e5e01a954204.jpg)
使用场景