Kafka 应用架构
- Producer:通过 Push 模式向消息队列 Kafka 的 Broker
发送消息,发送的消息可以是网站的页面访问、服务器日志等。
- Kafka Broker:消息队列 Kafka 的服务器,用于存储消息。支持横向扩展,一般 Broker
节点数量越多,集群吞吐率越高。
- Consumer Group:通过 Pull 模式从消息队列 Kafka Broker 订阅并消费消息。
- Zookeeper:管理集群的配置、选举 Leader,以及在 Consumer Group 发生变化时进行负载均衡。
Kafka 发布订阅关系图
消息队列 Kafka 采用 Pub/Sub(发布/订阅)模型,其中:
- Consumer Group 和 Topic 的关系是 N:N。 同一个 Consumer Group 可以订阅多个 Topic,同一个 Topic
也可以同时被多个 Consumer Group 订阅。
- 同一 Topic 的某一条消息只能被同一个 Consumer Group 内的任意一个 Consumer 消费,但多个 Consumer Group
可同时消费这一消息。
Kafka 部署架构
- Kafka管理控制台:标准J2EE应用,采用Tomcat部署,数据库使用PostgreSQL。
- Kafka 服务端:Zookeeper和Broker节点数量可按需部署,
Broker集群采用主从模式,消息至少保存两份,建议不同节点跨可用区部署。
- 客户端SDK支持多语言:支持JAVA、C语言等,客户端通过TCP访问Broker。