问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

深入浅出系列-分布式事务Seata TCC模式

发布网友 发布时间:2024-09-06 17:11

我来回答

1个回答

热心网友 时间:2024-09-30 01:44

在Seata框架中,我们已经深入探讨了AT模式,但今天要转向另一种模式:TCC(Try-Confirm-Cancel)。它是蚂蚁金服为社区贡献的一种分布式事务处理策略。TCC的核心思想同样是二阶段提交,但与AT模式不同的是,它需要开发者自行设计业务逻辑,实现Try、Confirm和Cancel三个服务接口。

以用户购买商品为例,首先发起请求时,Business会通过Try接口在库存、订单和账户服务中预留资源,而不是直接操作,如库存冻结和账户余额冻结。接着,如果Try阶段所有服务都成功,TM会确认提交,调用Confirm接口执行实际操作,如减库存、创建订单和扣减余额。如果Try阶段有失败,会触发Cancel接口进行资源回滚。

TCC模式中存在一些特殊异常情况,如空回滚和幂等性问题。空回滚发生在Cancel先于Try执行,这时需要额外的事务控制表记录状态。幂等性保证了即使接口被多次调用,资源也不会被重复处理。悬挂则涉及Try和Cancel的执行顺序,需要在Try前检查Cancel或Confirm的状态。

相比AT模式,TCC的接入成本更高,因为它要求业务模型拆分为两阶段,代码实现复杂且侵入性强。然而,TCC通过业务层面的加锁优化了性能,减少了数据库锁的持有时间,提高并发性能。此外,TCC不需要依赖特定的数据库,开发者可以自由选择SQL实现。

总的来说,TCC模式更适合对业务灵活性和并发性能有较高要求的场景,但其复杂性也相应增加。在选择分布式事务模式时,需根据实际业务需求和复杂性进行权衡。"没有最好的,只有最合适的",这是对分布式事务模式选择的最佳总结。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中美有什么经济冲突 杨凌衡水实验中学高中学费是多少 蒂芙尼珍珠项链怎么清洗和保养? tiffany&co 的缺点 如何保养蒂芙尼的项链? tiffany保养要多久时间 Tiffany珠宝需要多长时间保养? 人为什么活着,怎样活着都是无憾!! 孩子犟的不行家长怎么教育 有什么比较好用的游戏视频录制软件? 适用于Windows的10个好用的游戏录制软件 遇到分布式事务,这四种方案可以让你眉开眼笑~ 一个绞丝加个姓候的候念什么 哪里有教折心形和相思叶的方法? 西安交通大学好不好,全国排名? 无锡职业技术学院官网是哪个? 容易打动人的借钱理由 怎么设置手机的手写键盘? 手机怎样切换成手写输入法? 可以手写的电脑输入法(电脑上可以手写的输入法) 会说普通话和潮汕话&不是揭阳人而在揭阳居住的都进来看看 塔防三国志 无双小乔除了终极周瑜还能做其他的材料吗 中年女人梦见很多小鸡 山头火命佩戴什么最旺财 山头火命的人戴什么最旺 玉林芳草街到杜浦草堂怎么坐公交车 山头火的人戴什么最旺 前台第一次夜审没过,再过一次会重复吗 想知道:成都市 从成都东站到瑞升花园怎么坐公交? 山头火命戴什么最旺 宾馆前台夜审过了2次日期怎么改 SpringCloud五大核心组件,超详细介绍! 12306春节抢票,程序员如何应对每次百万级的并发量 肝气郁滞的症状 肝郁气滞的症状有哪些 气郁症是什么症状 肝郁气滞会引起什么病 血糖超过多少算糖尿病 血糖水平达到多少,就会引起糖尿病足,导致烂脚吗? 这两位有夫妻相吗?算不算天生一对? 五年级下册语文同步苏教版练习5母爱 请使用简练得语言概括文章的主要... 五年级上册语文六单作题目橘子里的母爱 说起母爱,你能想到什么呢? 1949年腊月除八0点生五行是啥 1949年属啥的多大了 腰疼肚子疼是什么原因 晚上吃饱胃疼还腰疼是怎么回事 粽叶煮好还用凉水泡吗 粽叶煮好还用凉水泡吗粽叶煮好还需不需要凉水泡 租借大桌子 月经期间可以打消炎针吗