在 Kafka 集群中,Zookeeper 承担了哪些职责?它对集群的协调和管理具体发挥了什么功能?
考察说明
考察对 Kafka 旧版架构中 Zookeeper 角色的理解及其在集群协调中的具体职责。
回答思路
- 【回答框架 1】Kafka 早期版本中,Zookeeper 负责集群元数据管理,包括 broker 注册、topic 分区信息、ISR 列表等,并用于 leader 选举。
- 【回答框架 2】Zookeeper 提供分布式协调服务,通过临时节点监控 broker 存活状态,故障时及时通知控制器进行重新选举。
- 【回答框架 3】控制器(Controller)是 Kafka 集群的核心管理组件,由 Zookeeper 在 broker 中选举产生,负责分区 leader 选举、分区分配等管理操作。
- 【回答框架 4】Zookeeper 还用于存储消费者组的 offset(旧版本)以及管理配置信息,但新版本中这些职责逐渐被 Kafka 自身替代。
- 【关键点 1】Zookeeper 管理 broker 注册、topic 元数据和分区 leader 选举。
- 【关键点 2】Zookeeper 通过临时节点实现故障检测,并触发控制器选举。
- 【关键点 3】控制器负责实际的分区分配和 leader 切换,Zookeeper 提供协调基础。
- 【易错点 1】新版本 Kafka 已逐渐移除 Zookeeper 依赖,但不要忽略历史版本中的角色。
- 【易错点 2】不要将 Zookeeper 与 Kafka 控制器职责混淆,控制器选举和分区管理由控制器执行。