说,我在 raft 中有 3 个节点。由于网络故障,节点 3 与其他 2 个节点分离。然后节点 3 总是成为候选人,向其他人发送 requestVote args 并发现它无法获得足够的选票。然后节点 3 增加其任期并再次尝试请求投票。所以节点 3 的任期明显大于提交日志的其他节点102, 103, 104, 105
。
一段时间后,网络恢复,节点 3 再次加入群组并成为追随者。但是,由于它的期限很大,它总是拒绝来自领导者(节点 1)的 AppendEntries。node 3如何将日志从102恢复到105?
Node 1(leader):
* logs [101, 102, 103, 104, 105]
* term [1, 2, 2, 2, 2 ...]
Node 2 (follower)
* logs [101, 102, 103, 104, 105]
* term [1, 2, 2, 2, 2 ...]
Node 3
* logs [101]
* term [1, 2, 3, 4, 5 ...]