Zookeeper----ZAB协议

一、ZAB协议

1、什么是ZAB协议

Zookeeper Atomic Broadcast,有效解决了 Zookeeper 集群崩溃恢复,以及主从同步数据的问题。
image

ZAB 协议定义的4种节点状态:

  1. Looking :选举状态。
  2. Following :Follower 节点(从节点)所处的状态。
  3. Leading :Leader 节点(主节点)所处状态。
  4. Observing:观察者节点所处的状态
    image

2、集群上线时的leader选举过程

服务器有4台节点,其中一台为observer不参与选举
image

image

3、崩溃恢复时的leader选举

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

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

image

5、ZK中的NIO和BIO应用

NIO:

  1. 用于被客户端连接的2181端口,使用的是NIO模式与客户端建立连接
  2. 客户端开启watch时,也使用NIO,等待zk服务器的回调
    image

BIO:
集群在选举时,多个节点之间的投票通信接口,使用BIO进行通信

二、CAP理论

1、CAP定理

image

2、CAP权衡

image

image

3、BASE理论

image

4、ZK追求的一致性

ZK在数据同步时,追求的并不是强一致性,而是顺序一致性(事务id的单调递增)。

posted @ 2022-07-10 23:08  nxf_rabbit75  阅读(100)  评论(0)    收藏  举报