(1)Raft算法(state machine)的正确性,可以考虑直接移植etcd raft模块的全部unit test cases(https://github.com/etcd-io/etcd/tree/master/raft),这是当前可见的为完备的raft算法测试用例集,所以pingcap的raft-rs(etcd raft的rust版)和 @我做分布式系统 的dragonboat都移植了这部分case; (2)线性一致性(linearizable):可以使用jepsen测试raft实现在各种异常(网络分区,宕机、hang等)情况是否满足线性一致性,仓库里面有很多的例子,照葫芦画瓢写一个也不难(还是很恶心的,毕竟只能用closure写),例如etcd、tidb、logcabin等等,详细的可以参考jepsen作者的文章:https://jepsen.io/analyses (3)更进一步的可能就是Chaos Engineering,给整个系统注入各种异常,看系统的表现,大的公司都有实践,其中开源的可以参考etcd的function test和dragonboat的Monkey Testing部分
分享这个小栈给你的朋友们,一起进步吧。
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)
- 热门小栈
- 新小栈
- 更多