raftpp 文档
raftpp 是一个以 C++17 实现的 RAFT 共识库,提供核心状态机、Raftor 高层编排、WAL、RPC 传输和示例工程。
- 项目结构与组件分层
- 构建方式与最小接入流程
StateMachine与Raftor的使用说明RaftorConfig与RawNode的参考信息minimal_node与kvstore示例说明
- 完整的 RAFT 状态机实现,包括选主、日志复制、成员变更和快照。
- 线性一致读,支持
Safe和LeaseBased两种模式。 - 可插拔的存储和传输边界,内置 WAL、内存存储和 Cap’n Proto RPC。
- 面向业务接入的高层 API,以及面向底层集成的
RawNode接口。
┌─────────────────────────────────────────────────────────────┐│ 你的应用 / 状态机 │└─────────────────────────────────────────────────────────────┘ │ ▼┌─────────────────────────────────────────────────────────────┐│ Raftor ││ 高层编排:生命周期、事件循环、提案、读索引、成员变更 │└─────────────────────────────────────────────────────────────┘ │ │ │ ▼ ▼ ▼┌─────────────┐ ┌─────────────┐ ┌─────────────┐│ Transport │ │ RawNode │ │ WAL ││ RPC │ │ Raft Core │ │ Storage │└─────────────┘ └─────────────┘ └─────────────┘- 阅读项目概览,了解组件边界和目录结构。
- 阅读快速开始,完成构建并运行最小示例。
- 阅读状态机开发和Raftor 使用,完成业务接入。
- 需要底层控制时,查阅RawNode 参考。