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选取帮主之江湖秘闻的更多相关文章

  1. Zookeeper选取机制

    1)半数机制:集群中半数以上机器存活,集群可用.所以Zookeeper适合安装奇数台服务器. 2)Zookeeper虽然在配置文件中并没有指定Master和Slave.但是,Zookeeper工作时, ...

  2. zookeeper + LevelDB + ActiveMQ实现消息队列高可用

    通过集群实现消息队列高可用. 消息队列在项目中存储订单.邮件通知.数据分发等重要信息,故对消息队列稳定可用性有高要求. 现在通过zookeeper选取activemq leader的形式实现当某个ac ...

  3. ZooKeeper是按照CP原则构建的,不适合做Service服务发现

    一.cap 分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾. ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的. ②A:Avail ...

  4. 为什么不应该使用Zookeeper做服务发现?(转载)

    转载自: http://dockone.io/article/78 [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个 ...

  5. 为什么不应该使用ZooKeeper做服务发现

    [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...

  6. Eureka与ZooKeeper 的比较(转)

    https://www.cnblogs.com/zgghb/p/6515062.html Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的 ...

  7. 大数据【六】ZooKeeper部署

    这是一个分布式服务框架,阿帕奇的一个子项目.关于ZooKeeper我只简单的部署一下,以便后面的HBase. 一  概述 ZooKeeper 分布式服务框架是 Apache Hadoop 的一个子项目 ...

  8. 【转帖】云平台发现服务构建:为什么不使用ZooKeeper

    http://www.chinacloud.cn/show.aspx?id=19979&cid=16 [日期:2015-04-29] 来源:dockerone   作者: [字体:大 中 小] ...

  9. Eureka与zookeeper

    Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程:客户端请求会自动切换到新的Eureka节点:当宕机的服务器重新恢复 ...

随机推荐

  1. 微信小程序中scroll-view的几个坑

    微信小程序中scroll-view的几个坑 1:设置scroll-x时,却不能横向滚动,因为view是block组件,但是这里用了flex就不能滚动了(想用flex布局,请开启属性enable-fle ...

  2. 【数据结构与算法】--JavaScript 链表

    一.介绍 JavaScript 原生提供了数组类型,但是却没有链表,虽然平常的业务开发中,数组是可以满足基本需求,但是链表在大数据集操作等特定的场景下明显具有优势,那为何 JavaScript 不提供 ...

  3. elastic集群单节点停机维护

    为了elastic时时提供服务,需要elastic至少状态维持在yellow状态.所有,维护时需要依次对elastic单个节点进行维护. 操作步骤如下: 1.停止elastic的自动分配功能 curl ...

  4. filebeat的@timestamp字段时区问题

    最近使用filebeat进行日志采集,并通过logstash对日志进行格式化处理. filebeat采集数据后,会给日志增加字段@timestamp,@timestamp是UTC时间,查看日志很不方便 ...

  5. 使用Storm实现累加求和操作

    package com.csylh; import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org. ...

  6. JS中数据类型转换

    JS中数据类型转换汇总 JS中的数据类型分为 [基本数据类型] 数字 number 字符串 string 布尔 boolean 空 null 未定义 undefined [引用数据类型] 对象 obj ...

  7. 23种设计模式之抽象工厂(Abstract Factory Pattern)

    抽象工厂 当想创建一组密不可分的对象时,工厂方法似乎就不够用了 抽象工厂是应对产品族概念的.应对产品族概念而生,增加新的产品线很容易,但是无法增加新的产品.比如,每个汽车公司可能要同时生产轿车.货车. ...

  8. PSSH工具

    目录 PSSH工具 参考 PSSH工具的介绍 PSSH工具的使用 PSSH工具

  9. Java诊断利器Arthas

    1 简介 Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 ...

  10. Django基础之jQuery操作cookie

    jquery之cookie操作 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquer ...