Raft

作者: 谭英智 | 来源:发表于2022-08-16 23:21 被阅读0次

    Raft是用来管理复制日志的共识算法。它通过复制状态机来保持整个集群的一致性。

    raft-overview

    leader选举

    raft-leader
    • 一开始大家都是candidate
    • candidate发送RPC到其他节点,向自己投票
    • 如果candidate获得半数以上的票数,则成为leader
    • 否则看是否有其他的candidate成为了leader
    • 如果没有则在一定随机时间后再次发起投票

    日志复制

    raft-log
    • leader收到客户端请求变更
    • leader会把变更追加到log中,并编号
    • leader不断向follower同步变更
    • 当leader同步变更给大部分的follower成功后,就会返回客户端,告知变更成功
    • 否则leader会不断重发变更给follower。

    安全性

    • 如果leader下线,只有最大offset的follower可以成为新leader

    日志压缩

    log会越来越长,可以通过快照的方式,把log压缩,并只保留最近的log

    raft-snap

    相关文章

      网友评论

          本文标题:Raft

          本文链接:https://www.haomeiwen.com/subject/igodgrtx.html