发布订阅
发布订阅的三要素是:
- 生产者
- 消费者
- 消息中心
工作原理
在分布式通信领域中,消息系统一般有两种典型的模式:
- 一种是点对点模式(P2P,Point to Point)
- 一种是发布订阅模式(Pub/Sub,Publish/Subscribe)
点对点
生产者将消息发送到消息中心,然后消费者从消息中心取出对应的消息进行消费。消息被消费后,消息中心不再存储该消息,因此其他消费者无法再消费该消息。也就是说,点对点模式虽然支持多个消费者,但一个消息只能被一个消费者消费,不允许重复消费。
这里的点对点不像 P2P 网络, 像是单播.
发布订阅模式
生产者可以发送消息到消息中心,而消息中心通常以主题(Topic)进行划分,每条消息都会有相应的主题,消息会被存储到自己所属的主题中,订阅该主题的所有消费者均可获得该消息进行消费。
广播.
Kafka
发布订阅模式的实现.
- 生产者(Producer)负责发布消息到消息中心,比如电子论文的会议方或出版社;
- 消费者(Consumer)向消息中心订阅自己感兴趣的消息,获得数据后进行数据处理,比如订阅电子论文的老师或学生;
- 消息中心(Broker)负责存储生产者发布的消息和管理消费者订阅信息,根据消费者订阅信息,将消息推送给消费者,比如论文网站。在 Kafka 中,消息中心本质上就是一组服务器,也可以说是 Kafka 集群。
Zookeeper 集群用来协调和管理 Broker 和 Consumer,实现了 Broker 和 Consumer 的解耦,并为系统提供可靠性保证。
相关概念
- Broker
- 分区
- 消费组
应用
想起中介者模式.