其他分享
首页 > 其他分享> > 分布式事务的4种解决方案

分布式事务的4种解决方案

作者:互联网

一. 2PC/XA(两阶段提交)

1.准备阶段

 

 

   协调者询问参与者是否准备成功,参与者回复结果

2.提交阶段

 

 

   如果事务在每个参与者身上都执行成功了,协调者会发通知让所有参与者提交事务,否则,协调者让所有参与者回滚事务

注意:(在准备阶段中,参与者执行了事务,但是并没有提交,只有在提交阶段,接受到协调者通知之后,才会进行提交或者回滚)

存在的问题:

      1.同步堵塞:所有参与者在等待其他参与者响应的过程中都处于同步堵塞状态,无法进行其他操作

      2.单点问题:协调者在2PC/XA中起到起到非常大的作用,发生故障将会造成很大影响,在第二阶段,如果出现问题,会导致所有参与者处于等待状态,无法进行其他操作

      3.数据不一致:在第二阶段,如果协调者只发送了部分Commit消息,此时出现了故障,就会导致部分参与者提交事务,其他参与者没有提交事务,使得数据不一致

      4.太过保守:任意节点失败都会导致整个事务提交失败,没有完善的容错机制

 

二.  TCC(补偿事务)

1.采用补偿机制,针对每一步操作

标签:事务,解决方案,协调者,回滚,阶段,提交,参与者,分布式
来源: https://www.cnblogs.com/zuiqiangJAVA/p/15828032.html