这是最常用的一种领导选举算法,它使用节点 ID的大小来选举新领导者。在所有活跃的节点中,选取节点 ID 最大或者最小的节点为主节点

以下采用“ID 越大优先级越高”的逻辑来解释算法:

每个节点都会获得分配给它的唯一 ID。在选举期间,ID 最大的节点成为领导者。因为 ID 最大的节点“逼迫”其他节点接受它成为领导者,它也被称为君主制领导人选举:类似于各国王室中的领导人继承顺位,由顺位最高的皇室成员来继承皇位。如果某个节点意识到系统中没有领导者,则开始选举,或者先前的领导者已经停止响应请求。

算法包含 4 个步骤:

1集群中每个活着的节点查找比自己 ID 大的节点,如果不存在则向其他节点发送 Victory 消息,表明自己为领导节点;
2如果存在比自己 ID 大的节点,则向这些节点发送 Election 消息,并等待响应;
3如果在给定的时间内,没有收到这些节点回复的消息,则自己成为领导节点,并向比自己  ID 小的节点发送 Victory 消息;
4节点收到比自己 ID 小的节点发送的 Election 消息,则回复 Alive 消息。

经典领导选举算法:Bully 算法相关推荐

  1. Bully 算法原理

    一.什么是Bully 选主 算法 Bully算法是一种霸道的集群选主算法,选举原则是"长者"为大,即在所有活着的节点中,选取ID最大的节点为主节点. (1)节点角色 分为两种:普通 ...

  2. elasticsearch最大节点数_Elasticsearch选举原理之Bully算法

    Elasticsearch采用了master-slave模式, ES会在集群中选取一个节点成为主节点,只有Master节点有资格维护全局的集群状态,在有节点加入或者退出集群的时候,它会重新分配分片,并 ...

  3. Paxos算法和Raft算法---经典的分布式系统一致性问题解决算法

    一.Paxos 算法 Paxos 算法诞生于 1990 年,这是一种解决分布式系统一致性的经典算法 .但是,由于 Paxos 算法在国际上被公认的非常难以理解和实现,因此不断有人尝试简化这一算法.到了 ...

  4. 经典常用算法/常用算法思维---附伪代码以及实现

    本篇文章旨在分享一些常用算法的伪代码以及部分算法的具体实现,后面也会更新我在刷算法题中学到的或者从别的地方看到的经典算法思维 本博客并不提供算法说明,算法证明,算法分析,算法测试等内容,只提供算法的伪 ...

  5. 面试题目_经典面试题目「回溯算法」解数独

    解数独,理解二维递归是关键! 通知:我将公众号文章和学习相关的资料整理到了Github :https://github.com/youngyangyang04/leetcode-master,方便大家 ...

  6. 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础

    ---layout: posttitle: 2018-02-03-PY3下经典数据集iris的机器学习算法举例-零基础key: 20180203tags: 机器学习 ML IRIS python3mo ...

  7. CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)、早期/中期/近期应用领域(偏具体应用)、经典CNN架构(偏具体算法)概述、常用工具/库/框架/产品、环境安装、常用数据集、编程技巧

    CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念).早期/中期/近期应用领域(偏具体应用).经典CNN架构(偏具体算法)概述.常用工具/库/框架/产品.环境安装.常用数据集.编程技巧 ...

  8. 六个经典的PHP加密解密算法

    六个经典的PHP加密解密算法 六个经典的PHP加密解密算法 非常给力的authcode加密函数,Discuz!经典代码(带详解) 函数authcode($string, $operation, $ke ...

  9. 数据挖掘经典十大算法_K-Means算法

    数据挖掘经典十大算法_K-Means算法 一.从故事理解K-Means Clustering Algorithm 1.有四个牧师去郊区布道,一开始牧师们随意选了几个布道点,并且把这几个布道点的情况公告 ...

最新文章

  1. .net之workFlow4.0学习
  2. html 三级目录索引,墨涩网 - HTTP Web服务器索引目录列表程序Directory Lister——墨涩网...
  3. C++之类和对象的关系
  4. kaike的FLAGs
  5. 10月31 安装redis报错
  6. SPSS数据分析流程
  7. Processing笔记04—鼠标键盘识别
  8. list中抽出某一个字段的值_Java 将List中所有item中的某一个字段值提出来生成一个新的List...
  9. 编程实践--现有10元,每瓶饮料2元;2个空瓶换一瓶饮料;4个瓶盖换一瓶饮料;总共能喝多少瓶?
  10. 华为S5700实战配置
  11. 【云原生】第二篇--容器管理工具 Docker生态架构及部署
  12. mysql自动备份快结束很卡_mysql备份慢以及自动重启问题——调整NUMA
  13. zipimport.ZipImportError: can‘t decompress data; zlib not available
  14. python flask项目结构_Flask项目结构
  15. SpringBean篇 (2) 注解配置形式
  16. mysql 查看备份工具_MariaDB/MySQL备份和恢复(一):mysqldump工具用法详述【转】
  17. 我说,执着造就了成功
  18. 鸿蒙灵根有哪些,关于神话中十大灵根,你知道的有我多吗?
  19. Windows Server2012 安装升级补丁更新
  20. 药品查询开发接口正式发布

热门文章

  1. 阿里云服务器如何进行网站域名解析?
  2. java不同项目加token访问_利用JWT实现前后端分离的Token验证
  3. git学习(二)查看log历史记录
  4. c语言 wchar_t,一个【wchar_t】引发的学案
  5. java request 原理_JavaWeb response和request对象原理及实例解析
  6. 零基础学cad要多久_完整版的CAD技巧!3天轻松玩转CAD,零基础也能学会
  7. win10支持linux内核版本是多少,win10自带linux版本是多少
  8. idea中ssm集成freemark_基于SSM框架的迷你天猫商城
  9. linux 目录权限上下文,文件和目录的安全上下文
  10. python批量音频转格式_GitHub - shede333/SWConvertVideoToAudio: Python批量转换 视频 为 音频MP3(即提取音频文件)...