在事务处理、关系型数据库以及计算机网络中,2阶段提交协议(2PC)、3阶段提交协议(3PC)是一种典型的原子提交协议(atomic commitment protocol)。同时,它是一种由协调器来进行管理事务提交、事务回滚的分布式算法。
协议对于事务提交,包括两个阶段
投票阶段或者事务提交请求阶段
该阶段,对事务接收方,协调器,发起事务提交的请求,当所有的节点返回响应为true,才进行提交阶段
提交阶段
当提交请求阶段成功,协调器,开始发起正式事务的提交
2PC最大的不足,是提交协议是阻塞协议,如果协调器发生故障宕机,则导致参与者无法对事务进行处理
在高并发网站中,使用分布式事务2PC协议把握以下原则
3PC 分为三次交互,第一阶段,提交请求阶段,事务协调器会询问参与者是否能够提交Commit,得到肯定响应,第二阶段,进行事务预提交,都确认提交成功之后,第三阶段,进入真实的提交,成功则完成事务,失败,则发起尝试。
与2PC相比,3PC 多了个预提交阶段,增加了一个阶段,当都收到响应之后,协议约定,即使此刻,协调器发生问题,那么通过补偿机制,比如超时机制,会自动保证第三阶段一定顺利执行。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。