Raft 分布式共识(Consensus)算法(Demo级别)实现
分布式存储(状态机)系统通常通过维护多个副本来进行容错,提高系统的可靠性,带来的代价就是分布式存储(状态机)系统的核心问题之一:维护多个副本的一致性。Raft分布式共识(Consensus)算法就是用来解决这个问题的,即使在部分(小于半数)副本宕机的情况下。
客户端可以和集群中的任一服务器相连,被重定向到Leader服务器,读写操作均通过Leader服务器完成,Leader服务器负责维持整个集群中的一致性。若Leader服务器宕机,则集群会自动产生新的Leader服务器。只要集群宕机数目小于半数,即集群是可服务且数据完整的。
Powered by https://raft.github.io/raft.pdf
未实现功能:
- 数据落地
- 运行时集群成员变化
- 日志压缩
kv.py 简单KV服务(基于UDP)
python kv.py 127.0.0.1:9901 127.0.0.1:9902 127.0.0.1:9903 #启动服务器1
python kv.py 127.0.0.1:9902 127.0.0.1:9901 127.0.0.1:9903 #启动服务器2
python kv.py 127.0.0.1:9903 127.0.0.1:9902 127.0.0.1:9901 #启动服务器3
kv_http.py 简单KV服务(HTTP封装的接口机)
python kv_http.py 9909 127.0.0.1:9901 127.0.0.1:9902 127.0.0.1:9903 #启动9909端口的HTTP服务