在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller)。它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本。当某个分区的ISR集合发生变化时,由控制器负责通知所有broker更新其元数据信息。当某个topic增加分区数量时,由控制器负责分区的重新分配。