Apache Kafka – 集群架构
Apache Kafka – 集群架构
请看下图。它显示了Kafka的集群图。
下表描述了上图中显示的每个组件。
S.No | 组件和说明 |
---|---|
1 |
Broker Kafka 集群通常由多个代理组成,以保持负载平衡。Kafka 代理是无状态的,因此它们使用 ZooKeeper 来维护其集群状态。一个 Kafka broker 实例每秒可以处理数十万次读取和写入,每个 broker 可以处理 TB 级的消息而不会影响性能。Kafka broker leader 选举可以通过 ZooKeeper 来完成。 |
2 |
ZooKeeper ZooKeeper 用于管理和协调 Kafka 代理。ZooKeeper 服务主要用于通知生产者和消费者有关 Kafka 系统中任何新代理的存在或 Kafka 系统中代理的故障。根据 Zookeeper 收到的有关代理存在或失败的通知,然后生产者和消费者做出决定并开始与其他一些代理协调他们的任务。 |
3 |
Producers 生产者将数据推送给经纪人。当新代理启动时,所有生产者都会搜索它并自动向该新代理发送消息。Kafka 生产者不会等待来自代理的确认,而是以代理可以处理的速度发送消息。 |
4 |
Consumers 由于 Kafka brokers 是无状态的,这意味着消费者必须通过使用分区偏移量来维护已经消费了多少消息。如果消费者确认特定的消息偏移量,则意味着消费者已经消费了所有先前的消息。消费者向代理发出异步拉取请求,以准备好使用字节缓冲区。消费者只需提供一个偏移值就可以倒带或跳到分区中的任何点。消费者偏移值由 ZooKeeper 通知。 |