繁体   English   中英

网络断开后筏子追随者如何重新加入?

[英]how raft follower rejoin after network disconnected?

木筏上有问题。

在论文“寻求可理解的共识算法(扩展版本)”中,它说:

为了开始选举,跟随者增加其当前术语并转换到候选状态。 (见第5.2节)

它还说:

在AppendEntries RPC和RequestVot RPC中,reciever应为“如果args.term <currentTerm”,则返回false

那么,让我们想想这个场景,筏系统中有5台机器,现在机器0是领导者,机器1到4是跟随者,现在是第1项。突然,机器1断开网络,然后机器1超时,它开始领导选举,它发送RequestVot RPC,确定它将失败(网络断开)。 然后它将开始新的领导人选举......等等。 机器1的术语是多次增加。 也许增加到10.当机器1'Term增加到10时,它连接网络。 并且领导者(机器0)将心跳发送到机器1,机器1将拒绝心跳(机器0'小于机器1),现在,机器1将无法重新加入系统。

这里要记住的重要一点是,当节点收到更大的术语时,它总是更新其本地术语。 因此,由于机器1将拒绝领导者的请求,领导者将最终了解更高期限(10)和降级,然后将选择新节点> 10。

显然这是低效的,但这就是为什么大多数现实世界的实现使用所谓的“预投票”协议,检查以确保节点在转换到候选角色并增加该术语之前可以赢得选举。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM