分布式的几件小事(十二)分布式事务

本文介绍了分布式事务的几种常见方案,包括两阶段提交(XA)、TCC、本地消息表、可靠消息最终一致性以及最大努力通知方案。这些方案各有优缺点,适用于不同的场景。例如,XA适用于单块应用的跨库事务,TCC适合高度一致性的核心场景,本地消息表方案依赖数据库,可靠消息方案基于MQ实现事务,而最大努力通知方案则在多次尝试后放弃。在实际应用中,应根据业务需求选择合适的事务策略。
摘要由CSDN通过智能技术生成

1.两阶段提交方案/XA方案。

原理 这个就是所谓的XA事务,两阶段提交,有一个事务管理器的概念,负责协调多个数据库(资源管理器)的事务,事务管理器先问问各个数据库你准备好了吗?如果每个数据库都回复ok,那么就正式提交事务,在各个数据库上执行操作;如果任何一个数据库回答不ok,那么就回滚事务。

适用场景
比较适合单块应用里,跨多个库的分布式事务。
缺点
因为严重依赖于数据库层面来搞复杂的事务,效率很低,不适合高并发的场景。

2.TCC方案

TCC全称是:Try、Confirm、Cancel。
原理
使用到了补偿的概念。整个过程分为三个阶段:
①Try阶段:这个阶段说的是对各个服务的资源做检查以及对资源进行锁定或者预留。
②Confirm阶段: 执行实际的操作。
③Cancel阶段:如果操作中任何一个失败了,那么就需要回滚进行补偿。

适用场景
这种方案说实话几乎很少用人使用,但是也有使用的场景。这个就是除非你是真的一致性要求太高,是你系统中核心之核心的场景,比如常见的就是资金类的场景,那你可以用TCC方案了,自己编写大量的业务逻辑,自己判断一个事务中的各个环节是否ok,不ok就执行补偿/回滚代码。
而且最好是你的各个业务执行的时间都比较短。
缺点
事物回滚严重依赖于自己写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值