面试题答案
一键面试主要组件及职责
- Zookeeper
- 职责:Kafka早期严重依赖Zookeeper来存储和管理元数据。它保存着集群的拓扑结构信息,比如broker列表,每个broker在Zookeeper上会有对应的节点,记录其存活状态等。还管理主题(topic)的元数据,例如每个topic的分区信息、副本分布等。此外,它在Kafka的选举机制中发挥重要作用,如控制器(Controller)的选举,确保集群在部分节点故障时能够正常运行元数据管理相关流程。
- Kafka Controller
- 职责:是Kafka集群中负责管理元数据变更的核心组件。当一个broker加入或离开集群时,Controller负责更新集群的元数据,向其他broker发送元数据变更通知,确保所有broker的元数据保持一致。在主题创建、删除、分区调整等操作时,Controller协调并执行这些元数据的变更操作,同时更新Zookeeper中的相关信息,保证元数据的持久化存储。
- Broker
- 职责:每个broker自身保存了所负责分区的元数据信息,包括分区的当前Leader副本、ISR(In - Sync Replicas)列表等。当客户端请求元数据时,broker能够提供自身所管理分区的元数据。并且broker会定期向Controller发送心跳,汇报自身状态,协助Controller进行元数据的整体管理和维护。