一致性协议(一)两阶段提交协议

 

Two-phase Commit(2PC)。

可以保证一个事务跨越多个节点时保持 ACID 特性。

两类节点:协调者(Coordinator)和参与者(Participants),协调者只有一个,参与者可以有多个。

运行过程

1. 准备阶段:协调者询问参与者事务是否执行成功;

2. 提交阶段:如果事务在每个参与者上都执行成功,协调者发送通知让参与者提交事务;否则,协调者发送通知让参与者回滚事务。


需要注意的是,在准备阶段,参与者执行了事务,但是还未提交。只有在提交阶段接收到协调者发来的通知后,才进行提交或者回滚。

存在的问题

– 参与者发生故障。解决方案:可以给事务设置一个超时时间,如果某个参与者一直不响应,那么认为事务执行失败。

– 协调者发生故障。解决方案:将操作日志同步到备用协调者,让备用协调者接替后续工作。

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » 一致性协议(一)两阶段提交协议

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多