Raft 协议
Raft 是一种为了管理复制日志的一致性算法
由斯坦福的两位教授 Diego Ongaro 和 John Ousterhout 发表的一篇论文提出来的
中英文论文地址,可以参考网友的链接: https://github.com/maemual/raft-zh_cn
论文中主要阐述了,在节点失效是常态化的环境下,一种便于理解的、不失性能的,使所有节点日志数据一致的方法
是分布式算法、一致性算法非常好的入门教材
目前 golang 的比较有名的实作有:
- hashicorp/raft
- Consul 是基于它实现的
- lni/dragonboat
- A Multi-Group Raft library in Go ,可以扩展数千 Raft 组。支持高可读写
一般的,写少读多的应用都可以基于 Raft 协议来实现
笔者,在实现排行榜服务时,遇到好多棘手的问题,发现如果是使用 raft 协议,可以迎刃而解
本系列主要介绍 hashicorp/raft ,开篇(本文)简单介绍下 Raft 相关内容
Raft 协议要解决的问题
为了简化分布式一致性问题背景,论