如何解决分布式事务问题

本文介绍了分布式事务的五种解决策略:XA方案、TCC、本地消息表、可靠消息最终一致性和最大努力通知方案,详细阐述了每种方案的原理、适用场景及优缺点。
摘要由CSDN通过智能技术生成

解决分布式事务有5中解决方案:

  1. XA方案(两阶段提交方案);
  2. TCC方案;
  3. 本地消息表;
  4. 可靠消息最终一致方案;
  5. 最大努力通知方案。

一、XA方案/两阶段提交方案

        这个方案中有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问各个资源管理器准备好两吗?如果每个资源管理器都回答好了,那就开始正式提交事务;如果有一个资源管理器回答不ok,那就开始回滚事务。

        这种方案比较适合简单应用,跨多个库的分布式事务,而且依赖数据库层面的复杂的事务,效率很低,绝对不适合高并发的事务。

二、TCC方案

TCC全称:Try、Confirm、Cancel。

Try阶段:这个阶段说的是对各个服务的资源做检测以及对资源进行锁定或者预留;

Confirm阶段:这个阶段是在各个服务中执行实际对操作;

Cancel阶段:如果任何一个服务的业务方法执行出错,就需要将那些已经执行成功的业务进行回滚。

这种方案的执行场景是跟支付、交易相关的,保证要么事务全部成功,要么事务全部自动回滚。

三、本地消息表

这个方案大致流程是这样的:

  1. A系统在本地执行一个事务的同时,插入一条数据到消息表;
  2. 接着将这个消息发送到MQ中去;
  3. B系统接到消息后,在一个事务里,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值