概述
2PC,是Two-Phase-Commit的缩写,即二阶段提交,主要解决的问题是让基于分布式架构下的所有节点在进行事务处理过程中能够保证原子性和一致性。它的核心思想是“一票否决”。
执行过程
**确认阶段:**协调者收到请求之后将请求转发给每一个参与者,等待参与者反馈。
**提交阶段:**所有的参与者都返回yes,那么协调者就会给参与者发布指令执行这个请求,并协调者会客户端返回成功信号。2PC算法提交阶段图解如图所示。
**中止阶段:**如果有一个或者多个参与者返回no,或者如果协调者没有收到参与者的返回信号,也会认为这个参与者返回的是no,那么协调者就会认为这个请求不可执行,那么协调者就会要求所有的参与者删除这个请求的记录 。2PC中止阶段图解如图所示。