Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Raft 如何确保复制的日志保持一致?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

领导者附加日志时会带前一条日志的位置与任期。跟随者只有在前缀匹配时才继续追加,否则拒绝,由领导者往前找匹配的位置再重试。

讲清原理

任期和索引帮双方找到最后一致的前缀。可以覆盖未提交的冲突后缀。多数派交叉和选举时的日志新旧限制用于保护已提交记录。

Raft 提交、节点应用和读屏障
Raft 提交、节点应用和读屏障

例子与易错点

跟随者在索引 10 有旧任期条目,领导者先找到共同的索引 9,再复制自己的后缀。已经提交的前缀不会这样被舍弃。

延伸阅读 Raft 的 CommitIndex 和 AppliedIndex 差在哪? · etcd 怎么用 Raft 保证写入的强一致性? · Raft 的 Follower 怎么追上 Leader?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。