本项目的目的是学习Raft算法,并实现一个简单的k-v存储数据库。因此并不适用于生产环境
- temp :保存持久化KVserver 存储的数据,和保存数据库初始化用的文件
- kvnode : raft 核心算法实现的目录
- rpc: 定义了raft rpc通信的数据结构
- kvserver: 将kvnode 实现实现的核心封装成了kv服务器
https://www.yuque.com/keqinkejian/tdcp7g/ge8pi8qakprnqo6l?singleDoc# 《raft算法调用示例图》
- 根据raft算法的论文中实现的结构和调用细节(自己写的话没必要严格参考论文的所有字段)
- 投票选主细节
- 快速了解什么是raft算法
- raft动画,强烈建议刚刚才接触raft算法的同学看一下这个动画(最好稍微理解一些理论再看动画会更加透彻)
另外很多人想看一下raft的论文但是苦于英语不太好,我这边也附上我在学习过程中用翻译狗机器翻译过的版本,虽然有些机翻的地方很难看,但是也总比直接看纯英文好些,另外我才用的是分段翻译,觉得机翻翻译的不好可以中英文对照着看。ps:机器翻译把图片都给毁了,想看图片还是直接看raft原文吧
另外如果您发现本文存在链接失效请访问:KVStorageBaseRaft-go