一致性协议有很多种,比如 Paxos,Raft,2PC,3PC等等,在这讲一种协议,ZAB 协议,该协议应该是所有一致性协议中生产环境中应用最多的了。为什么?因为它是为 Zookeeper 设计的分布式一致性协议!
1. 什么是 ZAB 协议? ZAB 协议介绍
- ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。
- Zookeeper 是一个为分布式应用提供高效且可靠的分布式协调服务。在解决分布式一致性方面,Zookeeper 并没有使用 Paxos ,而是采用了 ZAB 协议。
- ZAB 协议定义:ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持****崩溃恢复和原子广播协议。下面我们会重点讲这两个东西。
- 基于该协议,Zookeeper 实现了一种主备模式的系统架构来保持集群中各个副本之间
数据一致性
。具体如下图所示:
上图显示了 Zookeeper 如何处理集群中的数据。所有客户端写入数据都是写入到 主进程(称为 Leader)中,然后,由 Leader 复制到备份进程(称为 Follower)中。从而保证数据一致性。从设计上看,和 Raft 类似。
那么复制过程又是如何的呢?
复制过程类似 2PC&#x