栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

分布式选举协议:Bully

分布式选举协议:Bully

一 Bully算法

Bully算法是一种相对简单的选举算法,他的核心思想就是选举一个ID最大的进程作为Master。

它在选举的过程中,主要包括以下三种消息类型:

# Election: 表示发起一次选举消息

# Answer: 如果该进程处于存活状态,则对选举消息进行响应的消息

# Coordinate: 选举胜利者向其他进程发送的选举成功的消息

二 选举流程

2.1 发生选举的时机

# 进程收到Master节点失效的消息(没有Master了需要重新选举Master)

# 进程从失败中恢复(比如Master节点失效了,最后恢复了,因为他的ID是最大的,所以他又会重新选举)

2.2 进程P选举的流程

2.2.1 进程P的ID最大,他会向其他节点发送Coordinator消息,宣布自己是Master,常见场景比如之前的Master恢复或者Master失败后,当前进程的ID最大

2.2.2 如果P进程的ID不是最大的,则向比它大的进程发送Election消息,即选举消息

情况一: 收到比它ID大的进程的应答

假设Node A挂掉了,然后当前进程是Node B, 然后Node B向比自己大的进程发送Election消息。

如果它向Node C发送消息,则收到Node C返回的Answer消息,则Node B选举失败,等待接收其他节点的Coordinator消息;

情况二: 没有收到比它ID大的进程的应答

Node D向比自己ID大的Node A发送Election消息,但是Node A没有回复,则没有向Node D返回Answer消息,因为Node D没有收到Answer消息,则Node D就会向其他节点广播Coordinator消息,宣布自己是Master

2.2.3 如果进程P收到ID比自己小的进程的Election消息,它会返回每一个Answer消息;并且他自己也启动选举流程,向比它更高ID的进程发送Election消息

假设Node B向比它ID大的Node C发送Election消息,Node C返回Answer消息,Node B等待被其他其他发送Coordinator消息;然后Node C也启选举进程,向比自己大的Node D发送Election消息,然后返回Answer消息,则Node C等待被其他其他发送Coordinator消息。

2.2.4 如果进程P收到其他进广播的Coordinator消息,那么他就会把发送这条Coordinator消息的进程看作为Master进程

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号