Raft 组件选型:先验证日志、快照和成员变更
很多库都能选主并复制日志,工程差异却藏在存储接口、快照、成员变更与故障恢复里。选型不能只看协议名称和基准吞吐。
明确要共识的对象
状态机命令是否确定性执行,日志需要保留多久,快照由谁生成和校验,读请求需要什么一致性。业务若连这些语义都没定,换任何 Raft 库都只是推迟问题。
重点测试恢复路径
构造节点重启、日志截断、快照安装、网络分区与成员变更,检查集群能否按预期恢复。测试记录包含库版本、存储实现和超时配置。不要用单机进程里的模拟成功代替持久化验证。
考虑维护与迁出
日志格式是否公开,快照能否导出,升级是否需要停机,项目维护节奏与许可证是否符合要求。若绑定某个传输或存储层,把替换成本写进决策。
共识库替你实现协议,但不会替你定义状态机和恢复目标。先把这两件事做扎实,选型才有依据。