消息广播
Leader服务器首先为事务分配一个全局单调递增的唯一ID,我们称为事务ID(ZXID)。
Leader服务器为每个Follower服务器分配一个单独的队列。
Leader服务器为每个事务请求生成对应的Proposal,并把Proposal依次放入队列中,根据FIFO策略来进行消息广播。
每一个Follower服务器在接收到这个事务Proposal之后,都会首先将其以事务日志的形式写入到本地磁盘中去,并且在成功写入后反馈给Leader服务器一个Ack响应。
Leader服务器接收到超过半数Follower的Ack响应后,就会广播一个Commit消息给所有的Follower服务器以通知其进行事务提交,同时Leader自身也会完成对事务的提交,而每一个Follower服务器在接收到Commit消息后,也会完成对事务的提交。
好处
简化的二阶段提交,只要半数以上Follower服务器反馈Ack就可以开始提交事务,不需要全部反馈。