Apache Kafka - 集群架构


看看下面的插图。它显示了Kafka的集群图。

集群架构

下表描述了上图中显示的每个组件。

序列号 组件和描述
1

经纪人

Kafka集群通常由多个broker组成以维持负载平衡。Kafka 代理是无状态的,因此它们使用 ZooKeeper 来维护集群状态。一个 Kafka 代理实例每秒可以处理数十万次读取和写入,每个代理可以处理 TB 级消息而不影响性能。Kafka Broker Leader 选举可以由 ZooKeeper 来完成。

2

动物园管理员

ZooKeeper用于管理和协调Kafka代理。ZooKeeper服务主要用于通知生产者和消费者Kafka系统中是否存在任何新的Broker或Kafka系统中的Broker发生故障。根据 Zookeeper 收到的有关代理存在或失败的通知,生产者和消费者会做出决定并开始与其他代理协调他们的任务。

3

制片人

生产者将数据推送给经纪人。当新的代理启动时,所有生产者都会搜索它并自动向该新代理发送一条消息。Kafka 生产者不会等待代理的确认,而是以代理可以处理的速度发送消息。

4

消费者

由于 Kafka Broker 是无状态的,这意味着消费者必须使用分区偏移量来维护已消费了多少条消息。如果消费者确认特定的消息偏移量,则意味着消费者已经消费了所有先前的消息。消费者向代理发出异步拉取请求,以获得可供使用的字节缓冲区。消费者只需提供偏移值即可倒带或跳到分区中的任何点。消费者偏移值由ZooKeeper通知。