Skip to content

FAQ

当前仓库的真实构建配置是 C++17。文档编写以 CMakeLists.txt 为准。

单节点启动时是否需要填写 initial_peers

Section titled “单节点启动时是否需要填写 initial_peers?”

不用。单节点引导时可以留空,Raftor 会把本节点作为唯一投票节点启动。

多节点首次引导时 initial_peers 应该怎么填?

Section titled “多节点首次引导时 initial_peers 应该怎么填?”

应填写完整初始成员列表,并且包含当前节点自己。不同节点第一次启动时看到的初始成员集合应保持一致。

ReadIndex() 为何不直接返回业务数据?

Section titled “ReadIndex() 为何不直接返回业务数据?”

因为它的职责是确认当前读取是否满足线性一致性,而不是替代状态机的读取逻辑。实际数据仍应由应用层读取。

默认优先使用 Raftor。只有在你必须自己掌控 Ready 持久化、消息发送和推进顺序时,才考虑直接使用 RawNode

只要日志会持续增长,就应规划快照策略。开发阶段可先手动触发;进入长期运行场景后,应配置自动快照阈值。

pre_votecheck_quorum 是否需要关闭?

Section titled “pre_vote 和 check_quorum 是否需要关闭?”

通常不建议关闭。默认保持开启更符合大多数生产场景,也更有利于线性一致读和稳定选主。

  • 验证最小接入流程:minimal_node
  • 参考完整应用结构:kvstore