MST

星途 面试题库

面试题:消息队列Kafka架构中,元数据管理涉及哪些主要组件及其作用

在Kafka的架构里,元数据管理对于整个系统的运行至关重要。请阐述Kafka元数据管理机制中涉及的主要组件,并说明每个组件在元数据管理方面所承担的职责。
15.3万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

主要组件及职责

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