raft原理

Raft协议简介

  • Raft 是一种为了管理复制日志的一致性协议

  • 复制状态机概念,复制状态机是指每个状态机或系统如果初始状态一致,然后接受的改变状态的命令也一致,最后产生的结果状态也是相同。

  • 中英文论文地址:https://github.com/maemual/raft-zh_cn

raft 选主原理

image.png
  1. 所有node先是follower
  2. follower等待一个随机时间变为candidate,然后candidate发起投票,如果获得多数投票的节点,则被选为leader
  3. 如果没有获得多数投票,则term任期加一
  4. leader 获得成功后,会发送heartbeat保持leader地位
  5. 如果leader失去多数follower的heartbeat响应,则退回follower,重新触发leader选举

raft 日志复制

image.png
  1. 客户端向leader发送set请求
  2. leader在日志模块记录下set日志
  3. leader把这个日志复制到follower节点
  4. follower节点返回复制结果
  5. leader获得多数复制成功后,开始commit这个日志
  6. leader 给follower发送commit 日志请求
  7. 大部分节点都commit成功后,leader apply这个日志操作,leader给客户端发送success
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。