2pc两段提交协议
两段提交协议里面角色有
发起者(参与者)
: 接口调用的服务
参与者
: 发起方里进行远程调用的接口
协调者(全局事务者)
:整个服务事务的管理方
两段提交协议详细说明
第一阶段提交
协调者会向发起者和参与者发送一个指令,如果发起者和参与者收到指令后,都会把该业务逻辑执行完成并且成功返回给协调者。协调者在第二阶段会发送提交事务通知。
如果有一方返回执行失败,协调者会终止提交。
第二阶段提交
如果发起者和参与者全部都明确返回成功,则协调者向参与者发送提交指令,发起者和参与者释放锁定资源。如果一个参与者或发起者明确的返回失败,则协调者会发送终止指令。参与者和发起者都会取消已变更的事务。释放锁定的资源。
缺点: 如果协调者宕机了,参与者和发起者没有协调者的指挥,就会有同步阻塞。导致锁表的情况。所以才有三段提交协议概念
注意:在两段提交协议里,是没有超时机制的概念
应用:解决传统项目事务 jta+Atomikos里面使用了
ps:如果有问题请在评论下指正