领导人选举LCR

时间:2014-03-20 19:45:13

标签: java protocol-buffers distributed-computing

我正在尝试在4个节点的环形拓扑中实现领导者选举算法。我正在实施LCR算法。如果假设我的节点3发生故障,我应该如何继续选举领导者。

注意: - 注释编号为1,2,3和4.它是单向环,每个节点具有最近节点的信息,即1 - > 2,2 - > 3,3-> 4和4 - > 1

1 个答案:

答案 0 :(得分:2)

如果您确实只想有一个指向下一个节点的指针,那么您需要在节点4上检测到节点3已关闭。之后节点4将需要发送消息,表示节点3已关闭。节点2之后应该对此进行操作,并将其后继者修改为节点4而不是节点3,并且环再次完成。

您可以通过发送小的问候消息来确定某个节点是活着还是死亡,当您错过其中的一些(2或3)时,您可以认为它已经失效。

在您的示例中,节点3在选举期间出现故障时无关紧要,因为它无论如何都不是最高ID。但是当我们看一个例子时,当节点4死亡时,你还需要停止选举并重启它。