Apache Kafka 简明教程

Apache Kafka - Cluster Architecture

查看以下示意图。它显示了 Kafka 的集群图。

cluster architecture

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

S.No

Components and Description

1

Broker Kafka 集群通常包含多个代理,以维护负载平衡。Kafka 代理是无状态的,因此它们使用 ZooKeeper 维护其集群状态。一个 Kafka 代理实例每秒可以处理数十万次读取和写入,并且每个代理可以处理 TB 级消息,而不会对性能产生影响。Kafka 代理领导者选举可以通过 ZooKeeper 完成。

2

ZooKeeper ZooKeeper 用于管理和协调 Kafka 代理。ZooKeeper 服务主要用于通知生产者和消费者 Kafka 系统中任何新的代理出现或 Kafka 系统中代理发生故障。根据 Zookeeper 接收的关于代理出现或故障的通知,生产者和消费者做出决策,并开始与其他代理协调其任务。

3

Producers 生产者将数据推送到代理。当启动新的代理时,所有生产者都搜索代理,并自动向该代理发送消息。Kafka 生产者不需要等到代理的确认,并尽可能快地发送消息以供代理处理。

4

Consumers 由于 Kafka 代理是无状态的,这意味着消费者必须使用分区偏移量维护已消耗的消息数量。如果消费者确认特定的消息偏移量,则意味着消费者已消耗所有先前消息。消费者向代理发出异步拉取请求,以便准备一个可以消费的字节缓冲区。消费者可以通过提供偏移量值很简单地回退或跳至分区中的任意位置。消费者偏移量值由 ZooKeeper 通知。