分布式一致性原理与实践(学习笔记)

ZAB协议:

ZAB协议是分布式写条服务zookeeper专门设计的一种,支持崩溃恢复的原子广播协议。其基本工作原理如下图所示:

分布式一致性原理与实践(学习笔记)

协议介绍:

角色构成:

leader、fellower、watcher;

产生机制:

动态选举产生;

选举算法:

当过半的机器,支持某个机器时(包括其自身),该机器即为leader;相反,当其与过半机器断开,则leader地位丧失。所以一个由3节点组成的zookeeper集群,挂掉一个,依然可用,因为剩下机器数为2>=3/2;

ZAB协议的两种基本模式:

1.崩溃恢复;

2.消息广播;

崩溃恢复:

启动过程中,或leader发生网络终端、崩溃退出、重启等异常情况,导致其与过半节点不能通信,丧失对集群的“控制权“时,总之就是集群没有一个“合法“且对集群“控制力“的“**“(leader角色)时,ZAB协议会进入恢复模式,并选举产生新的leader服务器。这个过程类似人类社会的由“乱“到“治“的过程。

消息广播:

当选举产生新的leader,并且集群过半机器与该leader完成状态同步之后,ZAB协议退出崩溃恢复模式,而进入消息广播模式,即为ZAB协议的一般工作模式。

新加入集群的机器——> 数据恢复模式:与leader进行数据同步——>消息广播模式