总结来说,ZAB 协议就是:"主备一致性","消息广播","崩溃恢复"
流程
所有节点都会在3个状态中转换:
1:选举leader/崩溃恢复(leader宕机重新选举)
2:消息广播 (leader接收消息广播给...发送给其他follower
当follower与leader失去联系之后,将进入崩溃恢复模式,在follower中选举一个拥有相对最新数据的节点成为leader
重新消息广播
消息广播
leader选举成功后...,所有数据将写入进leader,由leader发送给其他follower
事务二阶段提交
在消息广播中,leader服务器会给每个事务提案分配一个全局单调递增的唯一事务ID,每次广播时需要保证每个事务...注意,每个事务ID需要严格遵守顺序
崩溃恢复
当leader服务器崩溃后,可能会出现以下情况
1:leader出现了提案5,通知时中途崩溃了
2:leader在发送提交提案5时,中途崩溃
2种情况都可能出现...由于新leader正常工作,可能提出了新的提案5,这个时候前leader需要比对高32位编号,如果不一致,则丢弃此提案,同步新leader的数据
崩溃恢复方式类似于raft
本文为仙士可原创文章,转载无需和我联系