Skip to content

Latest commit

 

History

History
25 lines (8 loc) · 1.05 KB

128.md

File metadata and controls

25 lines (8 loc) · 1.05 KB

128、采用了2PC两阶段提交思想的ZAB消息广播流程

采用了2PC两阶段提交思想的ZAB消息广播流程

每一个消息广播的时候,都是2PC思想走的,先是发起事务Proposal的广播,就是事务提议,仅仅只是个提议而已,各个follower返回ack,过半follower都ack了,就直接发起commit消息到全部follower上去,让大家提交

发起一个事务proposal之前,leader会分配一个全局唯一递增的事务id,zxid,通过这个可以严格保证顺序

leader会为每个follower创建一个队列,里面放入要发送给follower的事务proposal,这是保证了一个同步的顺序性

每个follower收到一个事务proposal之后,就需要立即写入本地磁盘日志中,写入成功之后就可以保证数据不会丢失了,然后返回一个ack给leader,然后过半follower都返回了ack,leader推送commit消息给全部follower

leader自己也会进行commit操作

commit之后,就意味这个数据可以被读取到了