发布订阅

image.png

发布订阅的三要素是:

  • 生产者
  • 消费者
  • 消息中心

工作原理

在分布式通信领域中,消息系统一般有两种典型的模式:

  • 一种是点对点模式(P2P,Point to Point)
  • 一种是发布订阅模式(Pub/Sub,Publish/Subscribe)

点对点

生产者将消息发送到消息中心,然后消费者从消息中心取出对应的消息进行消费。消息被消费后,消息中心不再存储该消息,因此其他消费者无法再消费该消息。也就是说,点对点模式虽然支持多个消费者,但一个消息只能被一个消费者消费,不允许重复消费

这里的点对点不像 P2P 网络, 像是单播.

image.png

发布订阅模式

生产者可以发送消息到消息中心,而消息中心通常以主题(Topic)进行划分,每条消息都会有相应的主题,消息会被存储到自己所属的主题中,订阅该主题的所有消费者均可获得该消息进行消费

广播.

image.png

Kafka

发布订阅模式的实现.

  • 生产者(Producer)负责发布消息到消息中心,比如电子论文的会议方或出版社;
  • 消费者(Consumer)向消息中心订阅自己感兴趣的消息,获得数据后进行数据处理,比如订阅电子论文的老师或学生;
  • 消息中心(Broker)负责存储生产者发布的消息和管理消费者订阅信息,根据消费者订阅信息,将消息推送给消费者,比如论文网站。在 Kafka 中,消息中心本质上就是一组服务器,也可以说是 Kafka 集群。

Zookeeper 集群用来协调和管理 Broker 和 Consumer,实现了 Broker 和 Consumer 的解耦,并为系统提供可靠性保证。

相关概念

  • Broker
  • 分区
  • 消费组

应用

想起中介者模式.

image.png

总结

image.png