在 Kafka 集群中,Controller(控制器) 是一个至关重要的核心组件。它本质上是集群中的一个 Broker,但被选举出来承担了管理整个集群状态的额外职责。 以下是关于 Controller 职责以及其宕机后集群行为的详细解析: --- 一、 Controller 在集群中的核心职责 Controller 的主要工作是管理和协调整个 Kafka 集群,具体包括以下几个方面: 1. Broker 状态管理(上下线管理) 监听集群中 Broker 的加入和退出。 如果某个 Broker 宕机,Controller 会立即感知到,并负责处理该 Broker 上所有 Partition 的 Leader 选举和副本重分配。 2. Partition Leader 选举 当集群发生变化(如 Broker 宕机、新增 Broker)时,Controller 负责从 ISR(In-Sync Replicas,同步副本集)中为受影响的 Partition 选出新的 Leader。 它还负责处理“优先副本选举”(Preferred Replica Election),即尽量让 Parti...