一、简语:

ZAB协议是Paxos算法的经典实现

二、ZAB协议的两种模式:

崩溃恢复:

1.每个server都有一张选票(myid,zxid),选票投给自己

2.收集所有server的投票

3.比较投票(逻辑:优先比较zxid,选出zxid最大的,其次比较myid)

4.改变服务器状态(崩溃恢复->消息广播 或 崩溃恢复->数据同步)

消息广播:

1.leader接收请求后,生成全局唯一的64位自增zxid的议案

2.将议案发给所有的follower

3.所有的follower收到议案后,先将议案写入硬盘后,马上回复leader一个ACK

4.当leader收到合法数量的ACK后,leader会给所有的follower发送commit命令

5.follower执行commit命令

待续...

04-19 23:33