本文介绍消息队列Kafka版的系统架构和发布/订阅模型。

消息队列Kafka版系统架构

图 1所示,一个消息队列Kafka版集群包括Producer、Kafka Broker、Consumer Group、ZooKeeper。

图 1. 消息队列Kafka版的系统架构
系统架构
Producer
通过push模式向消息队列Kafka版的Kafka Broker发送消息。发送的消息可以是网站的页面访问、服务器日志,也可以是CPU和内存相关的系统资源信息。
Kafka Broker
用于存储消息的服务器。Kafka Broker支持水平扩展。Kafka Broker节点的数量越多,Kafka集群的吞吐率越高。
Consumer Group
通过pull模式从消息队列Kafka版Broker订阅并消费消息。
Zookeeper
管理集群的配置、选举leader分区,并且在Consumer Group发生变化时,进行负载均衡。

消息队列Kafka版的发布/订阅模型

图 2所示,消息队列Kafka版采用发布/订阅模型。

图 2. 消息队列Kafka版的发布/订阅模型
发布订阅模型
  • Consumer Group和Topic的对应关系是N : N,即一个Consumer Group可以同时订阅多个Topic,一个Topic也可以被多个Consumer Group同时订阅。
  • 虽然一个Topic可以被多个Consumer Group同时订阅,但该Topic的消息只能被同一个Consumer Group内的任意一个Consumer消费。