浅谈 CAP 和 Paxos 共识算法( 三 )


Raft 和 ZAB
Raft 和 ZAB 协议将 Multi Paxos 划分了三个子问题:

  • Leader Election
  • Log Replication
  • Safety
在 leader 选举的过程中 , 也重定义角色:
  • Leader
  • Follower
  • Candidate
这个动画网站()生动展示了 leader 选举和日志复制的过程 。 在这里就不多讲了 。
另外 , raft 官方网站()可以自己操作模拟选举的过程 。
总结今天 , 我们从 CAP 谈到 Raft 和 ZAB , 中间穿插了各种名词 , 模型无论怎么变化 , 我们始终只有一个目的 , 那就是在一个fault torlerance 的分布式架构下 , 如何尽量保证其整个系统的可用性和一致性 。 最理想的模型当然是 Paxos , 然而理论到落地还是有差距的 , 所以诞生了 Raft 和 ZAB , 虽然只有一个 leader , 但我们允许 leader 挂掉可以重新选举 leader , 这样 , 中心式和分布式达到了一个妥协 。
参考资料:
被误用的一致性/
分布式共识 consensus:viewstamped、raft 及 paxos/