美文网首页程序员微服务架构和实践
分布式选举-Bully算法-1 原理

分布式选举-Bully算法-1 原理

作者: coding到灯火阑珊 | 来源:发表于2020-04-26 14:34 被阅读0次

分布式选举

        在大型分布式系统中,会存在多个特定功能的集群。最常见的就是协调者集群,如提供分布式锁,分布式事务的协调者集群。集群中的多个机器对外提供统一的状态、一致的数据,这就需要在集群中选择一个主节点(领导者),来管理集群中的其他节点(跟随者)。这个选择主节点的过程就叫做分布式选举。

        分布式选举的算法有Bully算法、Raft算法、ZAB算法等。我们先来分析Bully算法的原理及实现,后续文章会讲解其他算法及实现。

Bully 算法原理:

    选举原则:在所有活着的节点中,选取节点ID最大或者最小的节点为主节点。

    节点角色:主节点和普通节点

    消息类型:

    1,Election 消息,向节点发起选举的消息

    2,Alive 消息,节点对 Election 消息的应答

    3,Victory 消息,竞选成功的主节点向普通节点发送竞选成功的消息

    选举过程:

    1,集群中每个活着的节点查找比自己ID大的节点,如果不存在则向其他节点发送Victory消息,表明自己为主节点。

    2,如果存在比自己ID大的节点,则向这些节点发送Election消息,并等待响应。

    3,如果在给定的时间内,没有收到这些节点回复的消息,则自己成为主节点,并向比自己ID小的节点发送Victory消息。

    4,节点收到比自己ID小的节点发送的Election消息,则回复Alive消息。

    假设有三个节点,选举过程如下图:

    开源软件应用:在Elasticsearch的master选举采用的就是Bully算法,MongoDB 的副本集选主采用的也是Bully算法。

总结:

        Bully算法选主,节点有两个角色:主节点和普通节点。节点间通信有三种消息:Election消息、Alive消息和Victory消息。选举速度快,算法复杂度低。缺点是如果节点ID大的节点频繁加入,退出集群,就会导致频繁切主。

        Bully算法的原理讲解完了,下一篇文章《分布式选举-Bully算法-2 代码实现》我们来具体看看如何用代码实现分布式环境下的Bully选举。


获取Bully算法的实现代码,请关注公众号,后台回复“ Bully ”获取源码。                            

相关文章

  • 分布式选举-Bully算法-1 原理

    分布式选举 在大型分布式系统中,会存在多个特定功能的集群。最常见的就是协调者集群,如提供分布式锁,分布式事务的协调...

  • 选举算法

    选举算法 霸道算法 Garcia-Monila 在 1982 年的一篇论文中发明了所谓的霸道选举算法(Bully ...

  • ES选举-类Bully算法

    Bully算法 bully算法是一个分布式系统中动态选择master节点的算法,进程号最大的非失效的节点将被选为m...

  • 分布式选举-Bully算法-2 代码实现

    Bully 算法实现 设定集群中有三个节点,通过Bully算法实现选主。节点之间的通信使用的是自我实现的Remot...

  • 分布式选举-Raft算法-1 Leader选举 原理

    Raft理论是分布式数据一致性算法,为了便于理解Raft算法分成了4个部分:-Leader选举-日志复制-成员变更...

  • Redis分布式

    1 Redis分布式算法原理 1.1 传统分布式算法 1.2 Consistent hashing一致性算法原理 ...

  • 分布式选举算法

    Bully 算法 在所有活着的节点中,选取 ID 最大的节点作为主节点。 优点 选举速度快、算法复杂度低、简单易实...

  • ZAB 协议原理介绍

    ZAB 协议原理介绍 标签:ZAB Leader选举 概述 在分布式系统中,对于数据一致性的问题,Paxos 算法...

  • 某互联网面试题

    面试辅导; 一:没有笔试直接面试; 二:面试流程: 1,两个人一起问的,就问了数据库原理;目前主流分布式选举算法;...

  • Zookeeper小芝士(二)

    ZooKeeper使用的ZAB协议与Paxo算法的异同?Paxos算法是分布式选举算法,Zookeeper使用的 ...

网友评论

    本文标题:分布式选举-Bully算法-1 原理

    本文链接:https://www.haomeiwen.com/subject/aggdwhtx.html