我一直在阅读分布式系统中的选举算法。我读到了Bully算法并理解它。我遇到A Ring Algorithm
,了解它是如何理解它如何进行选举但我无法理解当两个进程2
和5
同时发现协调器时它如何处理这种情况{ {1}}无效。
每个都构建一个ELECTION消息并开始传播它。最终,这两个消息将一路走来,
7
和2
都将它们转换为COORDINATOR消息,完全相同数字和顺序相同。
谁将成为协调员(5
或2
)以及根据此算法的原因?
答案 0 :(得分:2)
说2和5发现协调器不起作用,然后两者都会启动选举算法。
由于环是单向的,因此消息只能在一个方向上传播。 2的选举信息将达到5,5的选举信息将达到2。
但有趣的是,无论何时节点收到选举消息,它都会将其ID附加到该消息。当节点收到自己的选举消息时,它会选择ID为最大的节点作为新协调器选举信息中将为5。
因此,5将成为协调员并发送协调员消息。