ES和zookeeper选取帮主之江湖秘闻
ES帮会
某日,ES帮会中决定选取老大统领帮会走向辉煌。
大家七嘴八舌,讨论方案,场面一顿混乱。傻牛站起来大喊一声:谁比俺力气大,谁就当老大。
(ES集群在启动时,选取集群master,按照nodeId进行排序。同时为防止分裂,需一半以上节点同意。)
于是乎,众人决定比拼腕力。经过一番比试,傻牛凭借一身蛮力,决战到最后,并荣获扳手腕大赛。
众人拍手欢呼,单膝下跪,高呼“傻牛帮主牛批,ES帮会千秋万代”。
(当master节点故障时,重复以上选举mater过程。)
次日ES帮会下山打家劫舍,没料到误入陷阱,傻牛被一枪撂倒。ES帮会顿时鸟兽人散。
逃回山寨后,众人决定再选帮主,于是乎,第二届选帮主掰手腕比赛热火朝天的开始了。。。
ZOOKEEPER帮会
五百年后,一群热血青年聚集上海滩,欲成立帮会。时代在进步,相比较ES帮会,ZOOKEEPER帮会的选帮主相对高明。众成员决定在ES帮会选帮主的基础上进行改进,不能每次都用掰手腕来进行决定。遂决定帮主对所有帮会成员进行排序并根据序号颁发令牌。今后若重新选派帮主,根据令牌序号进行排序。
(zookeeper集群在启动时,根据节点id和事务id进行比较。在集群初始化时,事务id都为空,按照节点id进行排序)
众人围坐一团,开始商量第一任帮主人选。许文强一马当先,“帮会刚刚成立,大家的令牌序号都还没有.既然这样,那我们就先比比腕力吧”。经过几轮大战,众人纷纷败给许文强,就这样上海滩,许文强正式成为上海滩ZOOKEEPER帮会第一任帮主。
ZOOKEEPER帮会以运送kafka消息为生,生意蒸蒸日上。终于有一日,一直眼红kafka生意的某军阀施计将许文强抓入大牢。
(当zookeeper集群leader故障时,会重新选取leader。在选举过程中,如果原leader复活,则继续担任leader角色)
帮会不可一日无主,ZOOKEEPER帮会众成员决定择日选举新任帮主,却没料到许文强被军阀的情人冯程程救出。于是昭告江湖,取消择日选取新任帮主,ZOOKEEPER帮会誓死追随强哥。
()
作为强哥的兄弟丁力通过偶然的机会认识了冯程程,对她的美貌一见钟情。而冯程程却对许文强一直倾慕,为了得到冯程程,丁力略施小计,毒杀许文强。
ZOOKEEPER帮会众人听到强哥去世的噩耗,痛心不已。但帮会不可一日无主,于是决定择日选取新任帮主。
(当zookeeper集群leader故障时,会重新选取leader。先比较事务id,如果事务id相同,再根据节点id排序)
选取帮主之日,丁力迫不及待,“当初成立帮主之际,定下的帮主规矩是根据令牌序号进行选举,而我自入帮会以来,一直是千年老二,这下强哥不在了,理当我出任帮主”。众人尽管纷纷不服,但低头看着自己腰间令牌的序号,却也无可奈何,只能同意丁力出任帮主之位。于是,丁力走马上任、出任ZOOKEEPER帮会新任帮主。。。
PS
以上故事纯属虚构,同时故事仅仅阐述了ES、zookeeper选举过程中的重要过程。仍有部分细节,无法对应到故事中,需了解更详细的朋友请自行研究。
以上故事仅仅是让各位朋友能够更好的理解ES、zookeeper选举过程。
ES和zookeeper选取帮主之江湖秘闻的更多相关文章
- Zookeeper选取机制
1)半数机制:集群中半数以上机器存活,集群可用.所以Zookeeper适合安装奇数台服务器. 2)Zookeeper虽然在配置文件中并没有指定Master和Slave.但是,Zookeeper工作时, ...
- zookeeper + LevelDB + ActiveMQ实现消息队列高可用
通过集群实现消息队列高可用. 消息队列在项目中存储订单.邮件通知.数据分发等重要信息,故对消息队列稳定可用性有高要求. 现在通过zookeeper选取activemq leader的形式实现当某个ac ...
- ZooKeeper是按照CP原则构建的,不适合做Service服务发现
一.cap 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾. ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的. ②A:Avail ...
- 为什么不应该使用Zookeeper做服务发现?(转载)
转载自: http://dockone.io/article/78 [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个 ...
- 为什么不应该使用ZooKeeper做服务发现
[编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...
- Eureka与ZooKeeper 的比较(转)
https://www.cnblogs.com/zgghb/p/6515062.html Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的 ...
- 大数据【六】ZooKeeper部署
这是一个分布式服务框架,阿帕奇的一个子项目.关于ZooKeeper我只简单的部署一下,以便后面的HBase. 一 概述 ZooKeeper 分布式服务框架是 Apache Hadoop 的一个子项目 ...
- 【转帖】云平台发现服务构建:为什么不使用ZooKeeper
http://www.chinacloud.cn/show.aspx?id=19979&cid=16 [日期:2015-04-29] 来源:dockerone 作者: [字体:大 中 小] ...
- Eureka与zookeeper
Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程:客户端请求会自动切换到新的Eureka节点:当宕机的服务器重新恢复 ...
随机推荐
- elasticsearch倒排索引与TF-IDF算法
elasticsearch专栏:https://www.cnblogs.com/hello-shf/category/1550315.html 一.倒排索引(Inverted Index)简介 在关系 ...
- 网站开发过程中的URL写法
在开发网页和服务器时发现,在很多地方需要写超链接 那么可以将超链接的使用者分为服务器和浏览器,以区分不同的写法 地址可能使用的情况: 1.跳转 2.转发 3.服务器资源地址 4.浏览器超链接 impo ...
- Scala Data Structure
Arrays Array 固定长度:ArrayBuffer 可变长度 arr.toBuffer, buf.toArray 初始化是不要使用 new 使用 () 访问元素 使用 for (elem &l ...
- 解决CentOS6.x或RedHat Linux 6.x版本不能通过System eth0以固定IP访问外网的问题
当你在VMware Workstation Pro中,打开从别人那里克隆来的系统,或者是开启迁移后的虚拟机系统时,VMware将会提示你:此虚拟机可能已被移动或 复制.为了配置特定的管理和网络功能.V ...
- 数据分析--numpy的基本使用
一.numpy概述 NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. NumPy的主要功能: ndarray,一个多维数组结构,高效且节省空间 无需循环对整组数据进 ...
- SpringBoot起飞系列-Web开发(四)
一.前言 从今天你开始我们就开始进行我们的web开发,之前的一篇用SpringBoot起飞系列-使用idea搭建环境(二)已经说明了我们如何进行开发,当然这是搭建起步,接下来我们就开始进行详细的开发, ...
- 读《深入理解Elasticsearch》点滴-multi_match
区分按字段为中心的查询.词条为中心的查询 注意高频词项被高得分词项(冷僻的词项)取代的问题 1.best_fields :适用于多字段查询且查询相同文本:得分取其中一个字段的最高分.可通过tie_br ...
- mysql 最左前缀匹配原则
1.在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例:对列col1.列col2和列col3建一个联合索引 KEY index_col1_co ...
- 在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射
一.前言 在实际项目开发过程中,我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中,因为我们最终想要在页面上展示的数据与数据库实体类之间可能 ...
- python pytesseract——3步识别验证码的识别入门
验证码识别是个大工程,但入门开始只要3步.需要用到的库PIL.pytesserac,没有的话pip安装.还有一个是tesseract-ocr 下载地址:https://sourceforge.net/ ...