美文网首页
Kafka副本Leader选举原理

Kafka副本Leader选举原理

作者: ssttIsme | 来源:发表于2023-05-02 15:44 被阅读0次

Kafka早期的版本就是直接用Zookeeper来完成选举的,它利用了Zookeeper的Watch机制:1节点不允许重复写入。2临时节点。这样实现起来比较简单省事,但是会存在一定的弊端。比如说分区和副本数量过多的时候所有的副本都要直接参与选举的话,一旦某个节点出现增减就会造成大量的Watch事件被触发,Zookeeper就会负载过重,从而不堪重负。
所以在新版本的Kafka中就换了一种实现方式,它不是所有的副本都要参与Leader选举的,而是由其中一个Broker来统一指挥,这个Broker的角色叫做Controller控制器。Kafka要先从所有的Broker中选出一个唯一的Controller。所有的Broker就会尝试在Zookeeper中创建一个临时的节点叫做Controller节点,谁先创建成功谁就是担任了Controller的角色,如果Controller挂掉或者是网络出现问题的时候,Zookeeper上的临时节点就会消失,其他的Broker就会通过Watch机制监听到Controller下线的通知然后就会按照先到先得的原则选举出一个新的Controller。这个Controller就相当于是选举委员会的主席,当一个节点成为Controller之后它就会承担以下职责:
1、监听Broker的变化
2、监听Topic的变化
3、监听Partition的变化
4、获取和管理Broker、Topic、Partition的信息
5、管理Partition的主从信息
当Controller确定以后就可以开始选举了,接下来就是要去找到参与选举的候选人、显然每个副本都像去推荐自己,但是不是所有的副本都有竞选资格的。只有在ISR中保存心跳同步的副本才有资格参与竞选。候选人确定了接下来就是Leader选举,Kafka自己实现了一套分布式选举算法,它的选举算法和微软的PacificA算法最相近,大致的意思是默认让ISR中的第一个副本变成Leader。比如ISR链表中的值是1 5 9。就会优先让1成为Leader(这就跟中国古代的皇帝传位是一样的:优先传给皇长子)。Leader选举的规则相当于是蛇形走位,这样设计的好处是可以去提高数据副本的容灾能力。Leadr和副本完全错开从而不至于一挂全挂。

相关文章

  • kafka leader选举机制原理

    关注《大数据技术进阶》微信公众号,及时查看更多大数据技术干活!kafka在所有broker中选出一个control...

  • kafka学习笔记

    kafka节点之间如何复制备份的? kafka使用Zookeeper实现leader选举。如果leader失败,c...

  • kafka监控

    监控策略 1、Kafka总体监控 leader 选举频率:kafka.controller:type=Contro...

  • 深入分析Kafka高可用性

    本文主要内容:①kafka复制机制②分区leader副本宕掉怎么选新的leader③高水位与leader epoc...

  • ClickHouse和Zookeeper

    背景 ClickHose使用Zookeeper的地方还是比较多的,像副本leader的选举、副本表写入的同步,以及...

  • kafka的leader选举过程

    知道leader选举的设计和策略kafka的高可用设计,具体选举的过程如何?最简单最直观的方案是,leader在z...

  • 001 Kafka | Leader选举

    何时需要进行leader选举 zookeeper服务启动时候 zookeeper服务器服务期间,无法与leader...

  • 每日一读 11.01

    Kafka副本水位与leader epoch的讨论 http://www.aboutyun.com/thread-...

  • kafka中的可用性保障

    kafka的消息可用性基于它的replication(副本)和leader/flower策略: kafka中每一个...

  • 原来Kafka中的选举有这么多?

    kafka中的选举可以分成三类: 控制器的选举 分区leader的选举 消费者的选举 在集群中,会有一个broke...

网友评论

      本文标题:Kafka副本Leader选举原理

      本文链接:https://www.haomeiwen.com/subject/ucbojdtx.html