前几天在分布式系统交流群里,小伙伴们在讨论6.824raftexperiment批量测试2000多次,总会有错误,报错的是在图8中Unreliable和UnreliableChurn2这两个测试。我自己也实际遇到过这个问题,在此记录下自己的解决思路。要走到这一步,首先假设你的程序没有大的问题,但是在上千次的测试中,会出现选举失败(活锁问题)或者提交日志冲突的问题。如果你连一个测试都过不了,请先继续《【MIT 6.824】学习笔记 5: 2021 Raft 实验实现细节》上面两个测试很白,乱了网络,写了一堆日志,然后给你10秒。会出错。主要有两种类型的错误:未能达成一致或应用错误。这两个问题分别用下面两个思路来解决。选举超时不能随便重置。如果你仔细看过Raft学员指南,里面写的很清楚只有以下三种情况才能重置选举超时:收到当前Leader的心跳请求,如果设置了AppendEntries请求参数任期过期(args.Term
