Skip to content

linpingchuan/raft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

实现 Raft 状态机

自己动手实现 Raft 状态机,将用于 pingchuan-mq 的消息队列中

设计

Raft 通过日志进行备份状态机。如果你能确保所有的物理机器有相同的日志顺序,然后所有的日志都能够按顺序落地到磁盘中,那么这些物理机器都将保持一直状态。

一个完整的 Raft 模型应该包含4个基础模块:

  1. 一致性模块,即核心的一致性算法模块;
  2. 日志模块,用于保存 Raft 日志;
  3. 状态机,用于保存用户状态数据;
  4. 传输模块,用于网络层通讯;

注意:这个 Raft 状态机实现只包含一致性模块,没有其他模块,你需要构建自己的日志的模块,状态机模块跟传输模块。

实现 Raft 状态机的服务器

实现 Raft 状态机的客户端

Raft 状态机的测试

About

Raft in Rust,self learn

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages