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节点:当宕机的服务器重新恢复 ...
随机推荐
- WebStorm在Font设置FontSize无效解决方法
我的WebStorm设置了主题.所以直接在File-Settings-Editor-Font设置了无效.它会提醒你要在主题里面改.主题在哪里呢 找到File-Settings-Editor-Color ...
- 素数路径Prime Path POJ-3126 素数,BFS
题目链接:Prime Path 题目大意 从一个四位素数m开始,每次只允许变动一位数字使其变成另一个四位素数.求最终把m变成n所需的最少次数. 思路 BFS.搜索的时候,最低位为0,2,4,6,8可以 ...
- CDH高可用hadoop集群性能配置
1.HDFS的高可用配置 dfs.namenode.edits.dir (NameNode 编辑目录) : 写入 NameNode 编辑的本地文件系统上的目录.未指定将存放在namenode数据目录中 ...
- Python学习笔记整理总结【Django】【MVC/MTV/路由分配系统(URL)/视图函数 (views)/表单交互】
一.Web框架概述 Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 ...
- python自动化测试三部曲之untitest框架
终于等到十一,有时间写博客了,准备利用十一这几天的假期把这个系列的博客写完 该系列文章本人准备写三篇博客 第一篇:介绍python自动化测试框架unittest 第二篇:介绍django框架+requ ...
- .Net Core 商城微服务项目系列(九):使用Jenkins构建自动发布
1.首先通过Docker运行Consul,并保证各个服务都成功注册: 然后运行jenkins,对MI.Web项目进行发布构建,至于怎么配置之前已经写过了,和上一篇一模一样,这里贴下批处理命令: cd ...
- 针对永久不过期的key 批量设置过期时间
问题需求: redis内存暴增,后来发现有很多设置永久不过期. 解决:查找出来之后针对前缀批量设置过期时间 (过期时间与开发沟通 保证服务不受影响) 来源于网上杨一的代码 正好解决了我遇到的问题 在这 ...
- win10 php安装redis 扩展
redis下载:https://github.com/MicrosoftArchive/redis/releases 我下载的是zip包,下载后安装redis. 开始安装php的reids扩展 查看p ...
- poll(2) 源码分析
poll(2) poll(2) 系统调用的功能和 select(2) 类似:等待一个文件集合中的文件描述符就绪进行I/O操作. 使用 实现 select(2) 的局限性: 关注的文件描述符集合大小最大 ...
- Golang的反射reflect深入理解和示例
编程语言中反射的概念 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制.也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examin ...