kafka的Leader选举机制
Kafka设计原理详解
Kafka核心总控制器Controller
kafka的所有Broker都会注册到kafka集群中去。kafka集群会选举一个Broker作为Leader作为kafka七群的总控制器Controller。他负责管理整个集群所有分区Partition和副本follower的状态。
- 当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本。
- 当检测到某个分区的ISR集合发生变化时,由控制器负责通知所有broker更新其元数据信息。
- 当使用kafka-topics.sh脚本为某个topic增加分区数量时,同样还是由控制器负责让新分区被其他节点感知 到。
这里请不要与Topic层面的多个partition中选举一个Partition作为Leader混淆了。
Controller选举机制是使用zookeeper的选举机制来实现:
在zookeeper中的主节点下面创建一个 /controller 临时节点,zookeeper会保证有且仅有一个broker能创建成功,这个broker
就会成为集群的总控器controller,如下:
Controller里面记录了当前的Controller是哪个节,如下:
Controller会用zookeeper的watcher机制,监控brokers下面的所有的broker,一旦发现某个broker挂掉了,就会去找到该broker有多少partion是leader并发起对该partition的选举。
对partition的leader重新选举的机制为:
监听topic相关的变化。为Zookeeper中的/brokers/topics节点添加TopicChangeListener,用来处理topic增减
的变化;
如下图, 对于每个Topic都有一个ISR列表,直接取ISR列表的第一个作为leader,如果当前挂的就是第一个,则选择后面一个作为leader。
unclean.leader.election.enable=false, 默认情况下, 是从IRS列表里面的节点作为leader,但是如果这个参数配置成true,不在ISR列表但是在Replicas列表里面的也可以作为选举leader的。但是可以想像得出来,这个不在ISR列表得副本数据不是很全得所以需要谨慎使用。
消费者消费消息得offset记录机制
每个consumer会定期将自己消费分区得offset提交给kafka内部topic__consumer_offsets里面,提交过得时候是用consumerGroupId + Topic + 分区号 ,value 就是offset得值。kafka会定期清理topic里得消息,最后就保留最新得那条数据。
kafka的log中为了提高并发量,默认会有50个分区,对于你提交得那条数据会放到那个分区使用下面得公式计算:
hash(consumerGroupId) % _Consumer_offsets 主题的分区数
kafka的Leader选举机制相关推荐
- Kafka Partition Leader选举机制原理详解
1 大数据常用的选主机制 Leader选举算法非常多,大数据领域常用的有以下两种: 1.1 Zab(zookeeper使用) Zab协议有四个阶段 Leader election Discovery ...
- zookeeper leader选举机制
最近看了下zookeeper的源码,先整理下leader选举机制 先看几个关键数据结构和函数 服务可能处于的状态,从名字应该很好理解 public enum ServerState {LOOKING, ...
- 分布式开发必须了解的Zookeeper的Leader选举机制(源码解析)
分布式开发必须知道的Zookeeper知识及其的Leader选举机制(ZAB原子广播协议) ZooKeeper是Hadoop下的一个子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括 ...
- 面试官:说一说Zookeeper中Leader选举机制
哈喽!大家好,我是小奇,一位不靠谱的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新,可以微信搜索[小奇JAVA面试]第一时间阅 ...
- zookeeper的Leader选举机制详解
转载自:https://www.toutiao.com/i6701570306445672963/?tt_from=copy_link&utm_campaign=client_share&am ...
- Kafka 副本leader选举
谁来实施 分区leader副本的选举由Kafka Controller 负责具体实施. 选举时间 leader挂掉时 broker挂掉时,然后broker上可能有某些leader 选举资格 Kafka ...
- Kafka的leader选举
实际上,leader选举的算法非常多,比如Zookeeper的Zab.Raft以及Viewstamped Replication.而Kafka所使用的leader选举算法更像是微软的PacificA算 ...
- Zookeeper启动和Leader选举机制
Zookeeper启动流程 zookeeper服务器有4个状态: LOOKING:寻找Leader FOLLOWING:作为Follower LEADING:作为Leader OBSERVING:作为 ...
- zookeeper的leader选举机制
什么是zxid和myid? zxid: zookeeper为了保证数据的有序性,会给每一个写操作的数据,编写一个全局唯一的zxid. zxid是一个64位的数字:前32位会是由当前节点参与的选举次数决 ...
- KafKa - 分区副本ISR选举机制
一.KafKa分区副本ISR选举机制 kafka 中每一个主题又进一步划分成若干个分区.副本的概念实际上是在分区层级下定义的,每个分区配置有多若干个副本. 所谓的副本,本质上就是一个只能追加写消息的提 ...
最新文章
- 申请 SSL 证书 --Nginx 配置Https 最佳实践
- Codeforces 1004F Sonya and Bitwise OR (线段树)
- 记最近Linux中遇到cpu使用率低loadavg高的分析过程
- Bokeh 布局图像和工具
- dyld Library not loaded @rpath libswiftCore dylib 解决
- 数据库路由中间件MyCat - 源代码篇(17)
- Unity 2D Touch Movement
- Mac小知识--软件的三种安装/卸载方法,优缺点分析
- openai-gpt_为什么GPT-3感觉像是编程
- linux开源监控工具,十款开源免费监控软件
- ArcGIS如何进行拓扑检查
- 思科产品手册_品牌和CIS在中国的历史(六):附下载世界帆船协会品牌管理手册...
- 麻省理工学院公开课:信号与系统:模拟与数字信号处理 调幅演示
- 微信小程序云开发 把时间戳转换成正常的时间格式上传到数据库中
- Word VBA中的光标操作
- js处理移动端有虚拟按键影响页面布局的处理方法
- Exchange Server 2013 运维系列——EMS实用命令收集(持续更新中...)
- 全国计算机专业录取分数线排名,2020中国高校录取分数线排名全国大学录取分数线表...
- 个人日记开发最终实现
- 16、ADS使用记录之AB类功放设计
热门文章
- Technorati 推出博客广告媒体
- 如果你现在没有目标,或许很迷茫
- hipster_通过Java Hipster升级Spring Security OAuth和JUnit测试
- 威廉玛丽学院计算机专业,威廉玛丽学院CS排名2020年掌握的流程盘点
- 问答网站Stack Overflow的成功之道
- 云计算:程序员重回个人英雄时代
- cdr软件百度百科_Cdr是什么软件
- ASP.NET DATETIME
- Question Answering over Freebase via Attentive RNN with Similarity Matrix based论文解读
- Mapped Statements collection already contains value for com.bai.dao.Userdao.UserByID