TCC分布式事务理解

2 篇文章 0 订阅
1 篇文章 0 订阅

TCC是三个英文单词的首字母缩写而来,分别对应Try、Confirm和Cancel三种操作,这三种操作的业务含义如下:
Try:预留业务资源
Confirm:确认执行业务操作
Cancel:取消执行业务操作

下面我将对这三种事务挨个挨个的举例说明:

Try:预留业务资源

这个就和它的单词意思一样,试着,尝试的意思,尝试着对某个资源进行操作,然后得到是否可以操作成功的结果,并且将你尝试操作的资源进行预留。
其实在我们生活中经常会用到这种操作,比如你在网上购物的时候,你将你想买的商品放入购物车中进行下单的时候,这个时候就会发生Try这个操作。具体流程如下:
当你创建订单时,后台会去检查你订单中的商品是否存在,或者库存是否足够,这里只会有2种结果:
第一种时库存不够亦或者时商品不存在,然后返回订单创建失败。

第二种是商品存在,库存足够。

当出现第二种情况时代表订单中的商品是可以购买的,这个时候我们就要对我们创建订单中的商品进行业务资源预留。预留业务资源的目的是因为购买这些商品的人不只有你一位,如果不进行业务资源预留的话别人极有可能会将商品买走,就会导致你付了钱,但是没有了商品,会产生很多的麻烦。所以这一步是非常重要的。
这里写图片描述

这就是Try的预留业务资源。(这里的库存预留不是直接减去商品的库存)

Confirm:确认执行业务操作

Confirm这个同样,是确认,证实的意思。就是对你上一步对资源的预留做出确定的操作只有进行了这一步操作这整个操作流程才会真的执行,才会真的把你预留的资源用掉。
继续上面的例子,上面订单创建成功了,但是你没有真的付钱,只是把你要买的东西帮你留着了,其实订单中的商品现在还不是你的,还是属于电商的,但是等你付款成功后就等于是对这个订单的确认,这个时候后台才会真的执行减去库存的操作,并开始发送通知,开始出货。等等操作。

Cancel:取消执行业务操作

Cancel是取消的意思,这一步其实和上面的Confirm是一个二选一的操作,要么执行Confirm操作,要么执行Cancel操作。Cancel操作就是放弃你预留的资源,其实商品的有效库存是:
效库存=当前库存-预留库存
Cancel其实就是将你预留的库存还回去,让别人可以继续购买这个商品,比如我们平时在买东西的时候创建好订单时会提醒你请在30分钟内完成交易,这是为了你创建订单后一直占用这个资源,所以后台在发现30分钟后你还未完成交易或者取消订单将会将你预留的库存还回去,让其他的用户可以购买。

具体的如下图:
这里写图片描述
这个我只是根据我自己的理解写的这么个例子,我也是一个刚学习这个的菜鸟,有什么不对的地方望大佬指点,
有兴趣的朋友可以加群我们一起讨论交流,群里有很多的资料,还有一位学习资料的叮当猫,群号:606278528

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值