kafka系列之控制器小记

Kafka控制器基于Zookeeper进行选举,负责Leader分区的重新分配。当broker加入或离开时,控制器会更新分区的Leader和Follower,确保数据同步和集群稳定性。ISR和OSR分别代表同步和非同步副本分区。
摘要由CSDN通过智能技术生成

一。基本概念
控制器的概念基于集群,控制器本质上是一个kafka服务器,主要负责Leader分区选举。
Kafka集群包含若干个broker,broker.id指定broker的编号,编号不要重复。
Kafka集群上创建的主题,包含若干个分区。
每个分区包含若干个副本,副本因子包括了Follower副本和Leader副本。
副本又分为ISR(同步副本分区)和OSR(非同步副本分区)

二。 broker选举
集群里第一个启动的broker在Zookeeper中创建临时节点,其他broker启动后会利用watch监听该节点,本质还是利用zookeeper的分布式锁实现选举。
集群控制器负责监听 ids 节点,一旦节点子节点发送变化,集群控制器得到通知。
三。选举过程
当控制器发现一个 broker 已经离开集群,那些失去Leader副本分区的Follower分区需要一个新
Leader(这些分区的首领刚好是在这个 broker 上)。
控制器遍历这些Follower副本分区,并确定谁应该成为新Leader分区,然后向所有包含新Leader分区和现有Follower的 broker 发送请求。该请求消息包含了谁是新Leader副本分区以及谁是Follower副本分区的信息。随后,新Leader分区开始处理来自生产者和消费者的请求,而跟随者开始从新Leader副本分区消费消息。
当控制器发现一个 broker 加入集群时,它会使用 broker ID 来检查新加入的 broker 是否包含现有分区的副本。如果有,控制器就把变更通知发送给新加入的 broker 和其他 broker,新 broker上的副本分区开始从Leader分区那里消费消息,与Leader分区保持同步。
结论:

  1. Kafka使用 Zookeeper 的分布式锁选举控制器,并在节点加入集群或退出集群时通知控制器。
  2. 控制器负责在节点加入或离开集群时进行分区Leader选举。
  3. 控制器使用epoch来避免“脑裂”。“脑裂”是指两个节点同时认为自己是当前的控制器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值