在Apache Kafka中,Zookeeper承担了哪些职责?请具体说明。
考察说明
考察对Kafka架构中Zookeeper功能的掌握,理解其作为协调服务的作用。
回答思路
- 【回答框架 1】Zookeeper在Kafka中主要负责集群元数据管理和协调,包括Broker注册与发现、Topic配置存储、分区副本选举(Controller选举)、消费者组协调(Offset存储与消费者再平衡)等。
- 【回答框架 2】Broker启动时向Zookeeper注册自身信息,包括主机、端口、运行状态等,客户端和Controller可以通过Zookeeper获取集群Broker列表,实现服务发现。
- 【回答框架 3】Zookeeper保存Topic的元数据,包括分区列表、副本分配、Leader副本选举结果等。当Broker故障或新增分区时,Controller从Zookeeper读取元数据并执行变更。
- 【回答框架 4】Controller选举依赖Zookeeper的临时节点和监听机制,多个Broker竞争创建/controller节点,成功者成为Controller,负责分区Leader选举和集群管理。
- 【回答框架 5】消费者组的Offset存储和消费者再平衡也依赖Zookeeper(旧版本),新版本Kafka使用内部Topic__consumer_offsets存储Offset,但Zookeeper仍用于管理Broker和元数据。
- 【关键点 1】Zookeeper负责Broker注册、Topic元数据存储、Controller选举和旧版消费者组协调。
- 【关键点 2】Controller通过Zookeeper临时节点实现选举,保证集群协调的一致性。
- 【关键点 3】新版Kafka减少了对Zookeeper的依赖,但元数据管理仍离不开它。
- 【易错点 1】不要混淆旧版消费者Offset存储在Zookeeper,新版已迁移到内部Topic。
- 【易错点 2】Zookeeper只有协调作用,不参与消息数据的传输和存储。