raft协议的go实现

初衷

长期以来看mongoDB、etcd都使用的raft,也看过braft,在分布式文件存储中元信息也用过raft库(C++版本),但是,始终都是调用库的apply接口而已,没有自己实现过。接下来的时间决定用go实现分布式中常用的一些算法。
raft是分布式一致性算法的经典算法,首当其冲成为了分布式基础库go版本的第一站。

为什么要自己写

  1. 看一个庞大的、现成的raft库,是很难自学到事无巨细的了解的。只有实践过,才能知道其中的琐碎细节,俗称“踩坑”。
  2. 网上现有go-raft实现的存在,公司级大型库不易学习
  3. 个人开源项目实现不完整:基本都是只实现了基本的选举过程,没有实现wal、snapshot、配置变更,没有一个麻雀虽小,五脏俱全的简单实现。

中文注释

由于是个人开源项目,没有团队,当然也没有老外参与,所以,代码注释都用中文了,关键是我英语还不太好,平时在公司编写代码可以用英文注释,可是开源项目要接受无数网上大佬的鞭尸,所以为了避免英语语言上驾驭不好而造成词不达意,故而采用中文注释,方便大家交流探讨。

代码

github地址:

https://github.com/lwwgo/goraft

采用的是MIT license,大家可以拿去使用,不要忘记一键三连(B站看多了,哈哈哈),能被大家看到、收藏、使用是很好的,若有同学提交代码是更好的,也欢迎邮箱联系我,北京线下当面交流。

安装

go get github.com/lwwgo/goraft

进度

选举 done
日志复制 done
wal done
snapshot done
配置变更 TODO
节点配置reload TODO

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值