Skip to content

Raft 分布式共识(Consensus)算法(Demo级别)实现

License

Notifications You must be signed in to change notification settings

chishaxie/py-raft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py-raft

Raft 分布式共识(Consensus)算法(Demo级别)实现

分布式存储(状态机)系统通常通过维护多个副本来进行容错,提高系统的可靠性,带来的代价就是分布式存储(状态机)系统的核心问题之一:维护多个副本的一致性。Raft分布式共识(Consensus)算法就是用来解决这个问题的,即使在部分(小于半数)副本宕机的情况下。

客户端可以和集群中的任一服务器相连,被重定向到Leader服务器,读写操作均通过Leader服务器完成,Leader服务器负责维持整个集群中的一致性。若Leader服务器宕机,则集群会自动产生新的Leader服务器。只要集群宕机数目小于半数,即集群是可服务且数据完整的。

Powered by https://raft.github.io/raft.pdf

未实现功能:

  • 数据落地
  • 运行时集群成员变化
  • 日志压缩

分布式内存KV服务(Demo)

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服务

About

Raft 分布式共识(Consensus)算法(Demo级别)实现

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages