5.5 Follower 与 Candidate 崩溃
截止到目前,我们只讨论了Leader
崩溃的问题。解决Follower
和Candidate
崩溃的问题,比Leader
崩溃要简单得多,这两者崩溃的处理方式是一样的。如果一个Follower
或者Candidate
崩溃了,那么之后发送给它的RequestVote RPC
和AppendEntries RPC
会失败。Raft
通过无限的重试来处理这些失败;如果崩溃的Server
重启了,RPC
就会成功完成。如果一个Server
在收到了RPC
之后但在响应之前崩溃了,那么它会在重启之后再次收到同一个RPC
。因为Raft
中的RPC
都是幂等的,因此不会有什么问题。例如,如果一个Follower
收到了一个已经包含在它的日志中的AppendEntries
请求,它会忽视这个新的请求。