Zookeeper----ZAB协议
一、ZAB协议
1、什么是ZAB协议
Zookeeper Atomic Broadcast,有效解决了 Zookeeper 集群崩溃恢复,以及主从同步数据的问题。

ZAB 协议定义的4种节点状态:
- Looking :选举状态。
- Following :Follower 节点(从节点)所处的状态。
- Leading :Leader 节点(主节点)所处状态。
- Observing:观察者节点所处的状态

2、集群上线时的leader选举过程
服务器有4台节点,其中一台为observer不参与选举


3、崩溃恢复时的leader选举
leader建立完后,leader周期性地不断向follower发送心跳(ping命令,没有内容的socket)。当leader崩溃后,follower发现socket通道已关闭,于是follower开始进入到looking状态,重新回到上一节的leader选举状态,此时集群不能对外提供服务。

4、主从服务器之间的数据同步

5、ZK中的NIO和BIO应用
NIO:
- 用于被客户端连接的2181端口,使用的是NIO模式与客户端建立连接
- 客户端开启watch时,也使用NIO,等待zk服务器的回调

BIO:
集群在选举时,多个节点之间的投票通信接口,使用BIO进行通信
二、CAP理论
1、CAP定理

2、CAP权衡


3、BASE理论

4、ZK追求的一致性
ZK在数据同步时,追求的并不是强一致性,而是顺序一致性(事务id的单调递增)。
浙公网安备 33010602011771号