一、bully算法
  经过以下几个步骤
    1.启动节点ping协调器,获取当前集群状态(节点信息,集群名称等),如果协调器没有启动一直到ping通为止
    2.无论能ping通,都会拿到对象activeMaster现役master
    3.判断activeMaster的数量,0说明当前集群没有master,1表示当前集群已经选举完毕.
    4.如果为1,当前节点启动Bully算法逻辑结束;如果为0,进入第5步(总会停止在这里)
    5.启动时发现没有现役master,将集群中所有的master节点放到candidate的候选名单中.候选名单大于等于最小master数量,小于最小master数量.
    6.如果candidate中大于等于master最小数量,从其中选举一个id值最小的节点放到activeMaster中,暂定为master,如果小于最小master转回第一步.
 二、master宕机逻辑
    在集群中,任意节点的变化,都会导致所有人记录的candidate/activeMaster发生变化
    ○ activeMaster发生变化(1-0),主节点宕机
    重新进行选举
    ○ candidate发生变化,现役master正常,其他备选有宕机现象;
  重新判断集群的最小个数(activeMaster+candidate个数>=最小master)

Elasticsearch的选举的更多相关文章

  1. elasticsearch的master选举机制

    master作为cluster的灵魂必须要有,还必须要唯一,否则集群就出大问题了.因此master选举在cluster分析中尤为重要.对于这个问题我将分两篇来分析.第一篇也就是本篇,首先会简单说一说m ...

  2. elasticsearch从入门到出门-08-Elasticsearch容错机制:master选举,replica容错,数据恢复

    假如: 9 shard,3 node Elasticsearch容错机制:master选举,replica容错,数据恢复 最佳分配情况: 这样分配之后,不管其中哪个node 宕机这个es 依然可以提供 ...

  3. elasticsearch 是如何实现 master 选举的 ?

    面试官:想了解 ES 集群的底层原理,不再只关注业务层面了. 前置前提: 1.只有候选主节点(master:true)的节点才能成为主节点. 2.最小主节点数(min_master_nodes)的目的 ...

  4. Elasticsearch 是如何实现 Master 选举的?

    1.Elasticsearch 的选主是 ZenDiscovery 模块负责的,主要包含 Ping(节点之 间通过这个 RPC 来发现彼此)和 Unicast(单播模块包含一个主机列表以控制哪 些节点 ...

  5. elasticsearch 是如何实现 master 选举的 ?

    想了解 ES 集群的底层原理,不再只关注业务层面了. 前置前提: 1.只有候选主节点(master:true)的节点才能成为主节点. 2.最小主节点数(min_master_nodes)的目的是防止脑 ...

  6. elasticsearch选举master

    数据节点确定了master以后.会开启MasterPinger线程来与其保持心跳通信的逻辑假设通信过程中链接断开,会通过MasterNodeFailureListener监听器进行回调处理处理过程中会 ...

  7. .net Elasticsearch 学习入门笔记

    一. es安装相关1.elasticsearch安装  运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...

  8. ElasticSearch 5学习(7)——分布式集群学习分享2

    前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...

  9. ElasticSearch 5学习(6)——分布式集群学习分享1

    在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...

随机推荐

  1. mysql 导出导入数据库(Mysqldump)备份

    使用mysql不熟练啊!!! mysqldump导出数据库,必须以cmd命令行的形式,在Navicat中以新建查询形式使用Mysqldump不好使的.(本来使用Navicat转储SQL,再导入SQL, ...

  2. Ubuntu:系统信息查询

    造冰箱的大熊猫@cnblog 2018/3/14 1.查询系统信息(uname) uname命令返回与系统相关的信息,如下所示. $ uname -a Linux IBM-T60 4.13.0-36- ...

  3. 利用栈实现字符串中三种括号的匹配问题c++语言实现

    编写一个算法,检查一个程序中的花括号,方括号和圆括号是否配对,若能够全部配对则返回1,否则返回0. Head.h: #ifndef HEAD_H_INCLUDED #define HEAD_H_INC ...

  4. Codevs 1213 解的个数(exgcd)

    1213 解的个数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知整数x,y满足如下面的条件: ax+by+c=0 p< ...

  5. windows驱动开发详解学习笔记

    1. windows驱动分两类,NT式驱动和WDM驱动,后者支持即插即用: 2. DriverEntry是入口函数,传入参数:pDriverObject由IO管理器传入: 3. WDM驱动中,AddD ...

  6. BOM基础笔记

    BOM基础 BOM对浏览器的一些操作 1.打开.关闭窗口 •open –蓝色理想运行代码功能 window.open('http://www.baidu.com/', '_self'); <!d ...

  7. jQuery事件之自定义事件

    其实事件的bind和unbind,都是为了自定义事件做准备. 语法: $(selector).trigger(type, data); 作用:在每一个匹配的元素上触发某类事件,它触发的是由bind() ...

  8. $\LaTeX$数学公式大全1

    $1\ Geek\ and\ Hebrew\ letters$$\alpha$ \alpha$\beta$ \beta$\chi$ \chi$\delta$ \delta$\epsilon$ \eps ...

  9. Android学习_7/25

     常用控件 Android控件使用规律:先定义id,再指定宽度和高度,然后适当加入一些控件特有的属性 1.         TextView 在界面上显示一段文本 2.         Button ...

  10. 7 vi 编辑器

    1.vim编辑器的工作模式 命令模式,插入模式,可视化模式,扩展命令模式. 2.命令模式 2.1.光标定位 hjkl:小键盘上下左右移动 0 $:行头.行尾 gg G:第一行.最后一行 30G:进入第 ...