zab协议-有序性
1.所有事务请求转发给leader
2.leader分配全局递增事务id,广播事务提议
3.fllower处理提议,做出反馈
4.leader收到过半数反馈,广播commit
5.leader做出响应
zab协议-崩溃恢复模式
1.如果一个事务在一台机器上处理成功,所有机器都成功
2.已经在leader服务器上提交的事务最终都要被所有服务器提交
3.丢弃leader还未开始广播的事务
zab协议-数据同步
1.leader会为每一个follower准备一个队列,将没有被同步的事务逐个发送到follower
2.半数follower完成同步,就开始提供服务
leader选举
leader节点上要持有最高的zxid,以及过半数节点同意
选举算法:
1.自己投自己
2.比较数据事务id,再比较服务器id
3.超过半数则担任leader,未超过则再次投票