首页 > 解决方案 > 存在分区时的 Raft 算法领导者选举

问题描述

假设您有三台服务器 A、B 和 C

A 和 C 之间存在网络分区。

在领导人选举期间,可能会发生以下步骤:

a) A 遇到超时并开始新的任期 1 的选举。B 响应投票请求,A 成为领导者。

b) 一段时间后,C 开始新的任期 1 选举,但由于 B 已经在任期 1 投票给 A,它拒绝投票给 C,并且由于超时而导致 C 的领导选举失败。

c) C 发生另一个超时,它开始进行第 2 任期的领导人选举。在这种情况下,B 接受 C 作为领导人,因为它有更高的任期,而 C 成为领导人。

d) 同样,稍后 A 开始并进行第 3 学期的选举,领导层在 A 和 C 之间交替。

这个摊位不会进步吗?我在这里错过了什么吗?

标签: consensusraftleader-election

解决方案


如果A可以到达则可以到达并且B不在网络分区中。CBAC

如果一个节点或一组节点无法从另一个节点或一组节点访问,则在这两个节点/节点组之间存在网络分区。


推荐阅读