zookeeper的leader选举机制个人总结
- 第一步:每个服务器都首先投自己,格式为<sid,zxid>;
- 第二步:然后将自己的投票以
<sid,zxid>形式发送给其他服务器,这样每个服务器除了自己的投票,还有集群中除了自己之外的所有服务器的投票信息; - 第三步:自己跟其他服务器的投票信息作对比,然后每个服务器再次选出一个leader。对比规则如下:
1)优先对比zxid,谁的zxid最高就投给谁(因为zxid越大,代表该服务器的数据越新,越全);
2)如果zxid相同,则谁的sid大就投谁。 - 最后:统计票数,被支持票数超过一半的服务器成为新的leader。
- 举例如下:
共有5台zookeeper服务器,分别为s1,s2,s3,s4,s5,对应的<sid,zxid>分别为s1<1,8> s2<2,8> s3<3,9> s4<4,9> s5<5,8>
a.则第一轮投票,每个服务器都投自己;
b.第二轮投票,每个服务器接受到的票数分别如下:
s1:<1,8>,<2,8>,<3,9>,<4,9>,<5,8>,根据对比规则:zxid为9的先被推举为leader,则s3,s4被选;其次,zxid相同下,sid大者胜出,所以最终s4为leader;
s2:<2,8>,<1,8>,<3,9>,<4,9>,<5,8>,同理,s4被选为leader;
s3:<3,9>,<1,8>,<2,8>,<4,9>,<5,8>,同理,s4被选为leader;
到目前为止,已经有3个服务器,超过半数推举s4为leader,所以结束本次选举,最终leader为s4;
zookeeper的leader选举机制个人总结的更多相关文章
- 面试官:说一说Zookeeper中Leader选举机制
哈喽!大家好,我是小奇,一位不靠谱的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 今天又是一个阳光明媚的一天,我又 ...
- zookeeper leader选举机制
最近看了下zookeeper的源码,先整理下leader选举机制 先看几个关键数据结构和函数 服务可能处于的状态,从名字应该很好理解 public enum ServerState { LOOKING ...
- Zookeeper中的watcher监听和leader选举机制
watcher监听 什么是watcher接口 同一个事件类型在不同的通知状态中代表的含义有所不同,下图列举了常见的通知状态和事件类型. Watcher通知状态与事件类型一览 上图列举了ZooKeepe ...
- 简单理解Zookeeper的Leader选举【转】
Leader选举是保证分布式数据一致性的关键所在.Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况.在讲解Leader选举前先了解 ...
- 温故知新-快速理解zookeeper功能&应用&选举机制
文章目录 zookeeper简介 什么是zookeeper zookeeper应用场景 zookeeper特点 zookeeper的角色 zookeeper的数据模型 节点数据结构 节点类型 zook ...
- 简单理解Zookeeper的Leader选举
Leader选举是保证分布式数据一致性的关键所在.Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况.在讲解Leader选举前先了解 ...
- 【分布式】Zookeeper的Leader选举
一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...
- zookeeper应用 - leader选举 锁
模拟leader选举: 1.zookeeper服务器上有一个/leader节点 2.在/leader节点下创建短暂顺序节点/leader/lock-xxxxxxx 3.获取/leader的所有子节点并 ...
- Zookeeper系列(十一)zookeeper的Leader选举详解(核心之一)
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6107600.html尊重原创,奇文共欣赏: 一.前言 前 ...
随机推荐
- 前端html+css+JavaScript 需要掌握的单词
前端html+css+JavaScript 需要掌握的单词 broswer 浏览器(客户端) html 超文本标记语言 css 层叠样式表 javascript 语言名字(类似python/php ...
- 个人永久性免费-Excel催化剂功能第28波-工作薄瘦身,安全地减少非必要冗余
Excel催化剂在完善了数据分析场景的插件需求后,决定再补充一些日常绝大多数Excel用户同样可以使用到的小功能,欢迎小白入场,在不违背太多Excel最佳实践的前提下,Excel催化剂乐意为广大Exc ...
- Uploadify.js引用导致浏览器宽度计算错误,布局混乱
首先,本人新手,高手勿喷,请忽略.谢谢. 今天在写代码的时候遇到一个奇葩问题,我再在页面加载完成以后,动态计算DIV宽度,将整个层铺满浏览器.一切正常.单当我引入jquery.uploadify.js ...
- css常用知识与用法
1 类选择器就是再 某一个标签后面加上class =“” 然后再到前面去定义这个class 一定要记住前面加. 2 id选择器和类选择器是差不多的 不过id选择器前面不加.而加# ...
- thinkphp phpexcel导出返回乱码
今天做了一个excel文件导出的功能 可是无论怎么改网上怎么搜答案什么缓冲啊charset=UTF-8'a都不起效 <?phpnamespace app\admin\controller;us ...
- Nginx 的简单使用 (IIS,Asp.Net)
Nginx 的一些常见功能(windows,AspNet ,IIS) 下载 官方网站:https://nginx.org/en/download.html 下载,解压缩是这个样子 启动: 启动方式有两 ...
- 【Android】Jetpack中的ViewModel:自动保存页面数据
目录 ViewModel 简介 ViewModel的使用方法 ViewModel 简介 ViewModel 允许数据在配置更改(如屏幕旋转)后仍然存在,使用 ViewModel 可以免去开发者花费 ...
- Kafka服务不可用(宕机)问题踩坑记
背景 某线上日志收集服务报警,打开域名报502错误码. 收集服务由2台netty HA服务器组成,netty服务器将客户端投递来的protobuf日志解析并发送到kafka,打开其中一个应用的日志,发 ...
- C# Winfrom 自定义控件——带图片的TextBox
效果: 描述: 本来是想用GDI在左边画图片上去的,文本是居中对齐,如果文本是左对齐,文本会把图片遮住控件长这样: 但这样做,输入框在获取焦点时候,会把图片挡住就像这样: 输入完成之后图片就会显示完整 ...
- Apache之——多虚拟主机多站点配置的两种实现方案
Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点: 将同一个端口映射成不同的域名,不同的域名映射到不同的站点. 我们只需要修 ...