kafka控制器组件Controller

控制器组件(Controller),是 Apache Kafka 的核心组件。

目前,kafka控制器组件Controller依赖Apache ZooKeeper。

其主要作用是在 ZooKeeper 的帮助下管理和协调整个 Kafka 集群。集群中任意一台 Broker 都能充当控制器的角色,而且,在运行过程中,有且只有一个 Broker 会成为控制器。

那么,哪一个Broker会成为控制器?

每台broker在启动时,都会去zookeeper中创建 /controller 节点(zookeeper的数据模型类似文件系统的树形结构)。

第一个成功创建/controller 节点的Broker胜出,荣幸的成为控制器。

成为控制器后,要负责什么功能?

  • broker集群成员管理: watch zookeeper的 /brokers/ids节点,检测broker成员的变化
  • 保存了最全的集群meta数据,定期推送给其他broker。
  • 当新增和删除分区时,对topic的管理
  • 分区重分配,这里并不是重平衡 Rebalance,不要搞混了
  • Preferred 领导者选举

要负责上述功能,那么控制器肯定保存了最全的数据:

  • 全Topic:包括具体的分区信息,比如领导者副本是谁,ISR 集合中有哪些副本等。
  • 全Broker:包括当前都有哪些运行中的 Broker,哪些正在关闭中的 Broker 等。
  • 全涉及运维任务的分区:包括当前正在进行 Preferred 领导者选举以及分区重分配的分区列表

控制器只有一台,那么宕机了怎么办?

所以上述的最全的数据,在Zookeeper中也保存了一份,当Zookeeper检测到控制器挂了,会进行新一轮的控制器抢注,胜出者从Zookeeper中拉取最全的元数据,初始化到自己的缓存中。这个过程就叫 Failover,控制器故障转移。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值