TCC分布式事务

什么是TCC分布式事务:

就是解决多服务之间接口调用时的数据原子性。

 

对于TCC分布式事务无非就是几个方法

初步操作(Try):也可以看成 RM本地事务的一个封装

确认操作(Confirm):在try基础上做的一个确认操作逻辑

取消操作(Cancel):如果确认操作或者try操作在tcc框架中检测到问题 直接回滚所有服务的try

说白了就是在 服务级 上游又增加了一个TCC框架(每个服务都有),然后通过tcc框架来检测各各服务之间的状态,包括(接口的tracation也可以说是RM本地事务,以及各各服务框架的状态,比如(服务宕机,redis挂掉等等),)这样就保证了服务级别的分布式事务。

 

这张图的意思是,订单服务修改订单状态时候依赖于 库存服务,积分服务,仓库服务,通过TCC分布式框架搭建,必须都插入成功后才可以修改订单状态,也就是每个服务中的Try没有问题才可以执行 confirm操作,然后各各TCC框架去执行confirm操作,一旦发生问题立即 Cancel。

 

其实对于TCC而言大多数解决的是

  • 某个服务的数据库宕机了。
  • 某个服务自己挂了。
  • 那个服务的 Redis、Elasticsearch、MQ 等基础设施故障了。
  • 某些资源不足了,比如说库存不够这些。

 

当然如果服务挂了  TCC是如何继续执行confirm 和 cancel操作的呢?

在TCC框架中会有日志文件记录当前tcc的各各节点和操作,当重新启动服务时会通过读取日志文件进行恢复。

 

https://www.cnblogs.com/jajian/p/10014145.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值