分布式事务的4种解决方案
作者:互联网
一. 2PC/XA(两阶段提交)
1.准备阶段
协调者询问参与者是否准备成功,参与者回复结果
2.提交阶段
如果事务在每个参与者身上都执行成功了,协调者会发通知让所有参与者提交事务,否则,协调者让所有参与者回滚事务
注意:(在准备阶段中,参与者执行了事务,但是并没有提交,只有在提交阶段,接受到协调者通知之后,才会进行提交或者回滚)
存在的问题:
1.同步堵塞:所有参与者在等待其他参与者响应的过程中都处于同步堵塞状态,无法进行其他操作
2.单点问题:协调者在2PC/XA中起到起到非常大的作用,发生故障将会造成很大影响,在第二阶段,如果出现问题,会导致所有参与者处于等待状态,无法进行其他操作
3.数据不一致:在第二阶段,如果协调者只发送了部分Commit消息,此时出现了故障,就会导致部分参与者提交事务,其他参与者没有提交事务,使得数据不一致
4.太过保守:任意节点失败都会导致整个事务提交失败,没有完善的容错机制
二. TCC(补偿事务)
1.采用补偿机制,针对每一步操作
标签:事务,解决方案,协调者,回滚,阶段,提交,参与者,分布式 来源: https://www.cnblogs.com/zuiqiangJAVA/p/15828032.html