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

消息队列Kafka版系统架构

一个典型的消息队列Kafka版集群包括四个部分:

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

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

消息队列Kafka版采用发布/订阅模型:

  • Consumer Group和Topic的对应关系是N : N,即一个Consumer Group可以同时订阅多个Topic,一个Topic也可以被多个Consumer Group同时订阅。
  • 某个Topic的一条消息可以被多个Consumer Group同时订阅,但只能被同一个Consumer Group内的任意一个Consumer消费。
kafka_pubsub