Raft实现报告(10)
最近疫情,已经在家一周了,论文都读不下去了,今天折磨了一天,继续读吧,早点弄完。
followr和candidate的宕机
知道目前为止,以前文章中所有提到的情况都一直专注于leader出现了异常,以及宕机之后如何处理。因为follower和candidate宕机的话更加容易处理。如果follower宕机了,那么发给他的RequestVote和AppendEntriesRPC就会失败。Raft会通过无限期的重试来处理这些失败。如果宕机的服务器重新启动了,那么RPC就会成功响应,如果服务器在处理RPC请求之后,但在响应之前宕机,那么他会再重新启动后再次收到相同的RPC,Raft的RPC必须时幂等的,所以出现的情况对系统不会造成任何的影响。例如,如果一个follower收到了一个AppendEntries请求,传来的条目在在即的log里已经有了,他会忽略请求中的这些条目。