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

消息队列 for Apache Kafka 系统架构

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

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

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

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

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