Kafka控制器

控制器组件(Controller),是 Apache Kafka 的核心组件。它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群。每个正常运转的 Kafka 集群,在任意时刻都有且只有一个控制器。

控制器选举

Broker 在启动时,会尝试去 ZooKeeper 中创建 /controller 节点。Kafka 当前选举控制器的规则是:第一个成功创建 /controller 节点的 Broker 会被指定为控制器。

控制器作用

  • 主题管理(创建、删除、增加分区)
  • 分区重分配
  • Preferred 领导者选举:Preferred 领导者选举主要是 Kafka 为了避免部分 Broker 负载过重而提供的一种换 Leader 的方案
  • 集群成员管理(新增 Broker、Broker 主动关闭、Broker 宕机):利用 Watch 机制检测变更。
  • 数据服务:保存了最全的集群元数据信息

控制器故障转移

故障转移指的是,当运行中的控制器突然宕机或意外终止时,Kafka 能够快速地感知到,并立即启用备用控制器来代替之前失败的控制器。这个过程就被称为 Failover,该过程是自动完成的,无需你手动干预。


   转载规则


《Kafka控制器》 wangyixin-tom 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
kafka高水位和Leader Epoch kafka高水位和Leader Epoch
高水位在分区高水位以下的消息被认为是已提交消息。kafka中,分区的高水位就是其 Leader 副本的高水位。 作用 定义消息可见性,即用来标识分区下的哪些消息是可以被消费者消费的。 帮助 Kafka 完成副本同步。 LEO(Log E
2021-03-28
下一篇 
kafka Broker请求处理 kafka Broker请求处理
所有的请求都是通过 TCP 网络以 Socket 的方式进行通讯的。 Kafka 使用的是 Reactor 模式处理请求。 Reactor 模式是事件驱动架构的一种实现方式,特别适合应用于处理多个客户端并发向服务器端发送请求的场景。多个客户
2021-03-28
  目录