如果leader崩溃,Kafka怎样重新选举?

leader对于消息的写入以及读取是非常关键的,此时有两个疑问:

1. Kafka如何确定某个partition是leader、哪个partition是follower呢?

2. 某个leader崩溃了,如何快速确定另外一个leader呢?因为Kafka的吞吐量很高、延迟很低,所以选举leader必须非常快。

如果leader崩溃,Kafka会如何?

使用Kafka Eagle找到某个partition的leader,再找到leader所在的broker。在Linux中强制杀掉该Kafka的进程,然后观察leader的情况。

如果leader崩溃,Kafka怎样重新选举?

通过观察,我们发现,leader在崩溃后,Kafka又从其他的follower中快速选举出来了leader。

Controller介绍

l Kafka启动时,会在所有的broker中选择一个controller

l 前面leader和follower是针对partition,而controller是针对broker的

l 创建topic、或者添加分区、修改副本数量之类的管理任务都是由controller完成的

l Kafka分区leader的选举,也是由controller决定的

Controller的选举

l 在Kafka集群启动的时候,每个broker都会尝试去ZooKeeper上注册成为Controller(ZK临时节点)

l 但只有一个竞争成功,其他的broker会注册该节点的监视器

l 一点该临时节点状态发生变化,就可以进行相应的处理

l Controller也是高可用的,一旦某个broker崩溃,其他的broker会重新注册为Controller

找到当前Kafka集群的controller

1. 点击Kafka Tools的「Tools」菜单,找到「ZooKeeper Brower…」

2. 点击左侧树形结构的controller节点,就可以查看到哪个broker是controller了。

如果leader崩溃,Kafka怎样重新选举?

测试controller选举

通过kafka tools找到controller所在的broker对应的kafka进程,杀掉该进程,重新打开ZooKeeper brower,观察kafka是否能够选举出来新的Controller。

如果leader崩溃,Kafka怎样重新选举?

Controller选举partition leader

l 所有Partition的leader选举都由controller决定

l controller会将leader的改变直接通过RPC的方式通知需为此作出响应的Broker

l controller读取到当前分区的ISR,只要有一个Replica还幸存,就选择其中一个作为leader否则,则任意选这个一个Replica作为leader

l 如果该partition的所有Replica都已经宕机,则新的leader为-1

为什么不能通过ZK的方式来选举partition的leader?

l Kafka集群如果业务很多的情况下,会有很多的partition

l 假设某个broker宕机,就会出现很多的partiton都需要重新选举leader

l 如果使用zookeeper选举leader,会给zookeeper带来巨大的压力。所以,kafka中leader的选举不能使用ZK来实现。

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:如果leader崩溃,Kafka怎样重新选举? https://www.dachanpin.com/a/cyfx/10866.html

(0)
消费者分区分配策略:Stricky、Range、RoundRobin
上一篇 2023-05-12 02:25:57
怎样使用requests模块抓取网页?
下一篇 2023-05-12 02:27:09

相关推荐

  • 如何使用idea创建纯净版web工程?

    一、前言: idea给我们提供了非常方便的创建web工程的方式,甚多小伙伴喜欢使用骨架来创建,但是创建出来的项目经常很有很多自动生成的、但是我们却不需要的内容,看起来很烦,接下来给大家分享一下如何用idea创建一个纯净的web工程,一定注意看图中的标识哦! 二、具体创建步骤 一、创建普通maven工程 二、设置GroupId和ArtifactId 三、选择对…

    2023-05-12
    139
  • 因为环保与污染树敌 徐辉的创业经历

      徐辉毕业于安徽科技学院主修生态农业和化工科学等专业,从小家境贫困,大学四年都处于勤工俭学度日,不过大学期间徐辉勤奋好学,一心精修于生态和化学等学科,那时的他认为随着社会的发展,我们的生存环境污染会越来越严重,我们人类将面临最大的难题就是环境污染。   所以他努力钻研各种环保化工和生态农业方面的知识,想通过自己的知识为社会做自己的一份贡献,怀着这样的梦想毕…

    创业分享 2023-05-13
    132
  • 独角兽”特批”消息一出 中国科技巨头纷纷表态

      同样是否会回归A股的问题,证券日报报道,昨日搜狗总裁王小川也提到,“搜狗看好这个事情,也有意愿回归A股,会跟着政策走。”王小川表示,毕竟公司是服务中国网民的,现在政策也比较支持,公司有在考虑这个事情。   深交所响应称,将突出新经济新产业特征,针对创新创业型高新技术企业的盈利和股权特点,推动完善IPO发行上市条件,扩大创业板包容性。上交所则表示,未来将积…

    创业分享 2023-05-19
    159
  • 海量创始人郝玺龙清华D

    3月25日,海量创始人郝玺龙受邀参加清华D-LAB思享会,与众多创业者分享创业经历和海量大数据重度孵化器的实践成果。 郝总首先介绍了自己的创业经历:情报学出身的他毕业后从事财经分析方面的工作。出于自身的兴趣和敏锐的眼光,郝玺龙认为情报分析和二级市场投资结合具有更为广泛的商业前景。1999年郝玺龙创立了海量信息技术有限公司,由其牵头组织研究开发的海量中文分词准…

    创业分享 2023-06-04
    305
  • 如何用控制台打印日历?

    朋友们大家好,今天我给大家带来一个控制台小程序——打印当月的日历,效果如下图: 笔者运行这个程序的时候是2022年7月30日,所以在日期的30后面加了一个*符号。 这个程序很简单,但有些知识点我也会为大家详细介绍,接下来按这个顺序来为大家讲解: java.util.Calendar类的使用控制台布局的设计程序分步实现完整代码清单结束语一. java.util…

    2023-05-12
    150

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

工作时间:周一至周五,9:30-16:30,节假日休息