minimal_node
examples/minimal_node/ 是仓库中的最小可运行示例,用于说明 raftpp 的基本接入方式。
示例展示了什么
Section titled “示例展示了什么”- 一个最小可工作的
StateMachine。 - 如何构造
RaftorConfig。 - 如何创建、启动、轮询并停止
Raftor。 - 单节点如何自动成为 leader。
- 示例源码:
examples/minimal_node/main.cc - 构建目标:
minimal-node-example
在仓库根目录执行:
task cmakecmake --build build --target minimal-node-example./build/examples/minimal_node/minimal-node-example程序会:
- 创建本地数据目录
./minimal-node-data。 - 启动一个节点 ID 为
1的单节点集群。 - 反复调用
Poll()驱动事件循环。 - 在单节点场景下等待节点当选 leader。
- 不引入 HTTP、CLI 或额外业务协议。
- 状态机实现较小,便于理解接口边界。
- 覆盖最小接入所需的关键步骤。
可按以下顺序扩展为业务节点:
- 把
Apply()改造成真实业务命令处理。 - 为快照定义稳定的序列化格式。
- 把单节点配置扩展成多节点
initial_peers。 - 增加提案入口和读接口。
更完整的应用级示例见kvstore。