算法:zab、raft、paxos

70 阅读1分钟

Kafka较早的版本是依赖于zookeeper的,后来逐步用kraft代替了,为了加深理解,特意再整理下分布式共识算法(distributed consensus algorithms),记住,所有的分布式一致性算法都是基于paxos的。 其实,想深刻理解是有一定难度,不写个论文想理解透彻有点难度的,但是我们至少要知道这些算法。

paxos

proposer、learner、acceptor 节点的角色是固定的,是三者中的一个。配合两阶段提交,可以很好的理解,两阶段提交可以理解为是这个算法的实现。

raft

Follower、Candidate、Leader是三个重要的角色概念,一个节点会在这三个角色之间进行转换。实现 Raft 算法两个最重要的:选主、复制日志。

zab

理解zab协议,最主要的是要知道其两个大的过程(原子广播协议):崩溃恢复 和 原子广播。如果集群中存在leader,则进行原子广播,否则进入崩溃恢复阶段。

参考:

1、一致性协议算法-2PC、3PC、Paxos、Raft、ZAB、NWR超详细解析