社区
李连宇的课程社区_NO_1
Kafka大数据实战
帖子详情
Leader选举
wlxs32
2023-01-13 02:19:23
课时名称
课时知识点
Leader选举
讲解kafka的控制器选举和分区选举
...全文
88
回复
打赏
收藏
Leader选举
课时名称课时知识点Leader选举讲解kafka的控制器选举和分区选举
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Zookeeper的
Leader
选举
一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是
Leader
选举
,接着就开始深入学习
Leader
选举
。二、
Leader
选举
2.1
Leader
选举
概述
Leader
选举
是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入
Leader
选举
。 (1) 服务器初始化启动。 (2) 服务器运行期间无法和
Leader
保持连接。 下面就两种情况进行分析讲解。 1. 服务器启动时期的
Leader
选举
若进
Kafka的
leader
选举
实际上,
leader
选举
的算法非常多,比如Zookeeper的Zab、Raft以及Viewstamped Replication。而Kafka所使用的
leader
选举
算法更像是微软的PacificA算法。 Kafka在Zookeeper中为每一个partition动态的维护了一个ISR,这个ISR里的所有replica都跟上了
leader
,只有ISR里的成员才能有被选为
leader
的可能(unclean.
leader
.election.enable=false)。在这种模式下,对于f+1个副本,一个Kaf
zookeeper的
leader
选举
机制
leader
选举
是zookeeper中最重要的技术之一,也是保证分布式数据一致性的关键所在。
leader
选举
分为服务器启动时
选举
和服务器运行期间
选举
。 服务器启动时期的
leader
选举
Leader
选举
的时候,需要注意的一点是,隐式条件便是 ZooKeeper 的集群规模至少是2台机器,这里我们以3台机器组成的服务器集群为例。在服务器集群初始化阶段,当有一台服务器(我们假设这台机器的 myid 为1,因此称其为 Server1)启动的时候,它是无法完成
Leader
选举
的,是无法进行
Leader
选举
Raft算法之
Leader
选举
Raft 使用心跳(heartbeat)触发
Leader
选举
。当服务器启动时,初始化为Follower。
Leader
向所有Followers周期性发送heartbeat。如果Follower在
选举
超时时间内没有收到
Leader
的heartbeat,就会等待一段随机的时间后发起一次
Leader
选举
。Follower将其当前term加一然后转换为Candidate。它首先给自己投票并且给集群中的其他服务器发送 RequestVote RPC。结果有以下三种情况:1、赢得了多数的选票,成功
选举
为
Leader
。
leader
选举
的原理
接下来再我们基于源码来分析
leader
选举
的整个实现过程。
leader
选举
存在与两个阶段中,一个是服务器启动时的
leader
选举
。另一个是运行过程中
leader
节点宕机导致的
leader
选举
; 在开始分析
选举
的原理之前,先了解几个重要的参数 服务器ID(myid) 比如有三台服务器,编号分别是1,2,3。 编号越大在选择算法中的权重越大。 zxid事务id 值越大说明数据越新,在
选举
算法中的权重也越大 逻辑时钟(epoch–logicalclock) 或者叫投票的次数,同一轮...
李连宇的课程社区_NO_1
1
社区成员
198
社区内容
发帖
与我相关
我的任务
李连宇的课程社区_NO_1
2007毕业于北京交通大学,研究生学历。14年工作经验,曾就职于中兴通讯、海尔电子从事软件研发岗位。有10年教学经验,现任职于某学校教学总监。
复制链接
扫一扫
分享
社区描述
2007毕业于北京交通大学,研究生学历。14年工作经验,曾就职于中兴通讯、海尔电子从事软件研发岗位。有10年教学经验,现任职于某学校教学总监。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章