Skip to content

v1.0.0

Choose a tag to compare

@Icingworld Icingworld released this 06 Jun 06:12
· 31 commits to main since this release
fe75966

v1.0.0

初步实现了Raft基本功能

  • 节点状态管理: 支持FollowerCandidateLeader三种角色的状态切换;
  • 选举机制: 实现了基于任期的投票逻辑,支持随机超时选举触发与投票限制;
  • 日志复制: Leader将客户端请求转化为日志条目并同步给其他节点;
  • 日志一致性保障: 通过prevLogIndexprevLogTerm保证日志匹配性;
  • 日志提交与应用: 日志在被大多数节点确认后提交,并推送给状态机应用;
  • 心跳机制: Leader定期发送心跳保持领导地位并触发空日志复制;
  • 任期与投票状态持久化: 防止重启后错误行为;
  • 快照与日志压缩支持: 适用于长时间运行场景下的日志膨胀问题。