美文网首页一些收藏
TCC的应用场景

TCC的应用场景

作者: 随风_d6a2 | 来源:发表于2022-01-28 22:40 被阅读0次

TCC
TCC(Try、Confirm、Cancel)是两阶段提交的一个变种。TCC提供了一个框架,需要应用程序按照该框架编程,将业务逻辑的每个分支都分为Try、Confirm、Cancel三个操作集。TCC让应用程序自己定义数据库操作的粒度,使得降低锁冲突、提高吞吐量成为可能。

以一个典型的淘宝订单为例,按照TCC框架,应用需要在Try阶段将商品的库存减去,将买家支付宝账户中的相应金额扣掉,在临时表中记录下商品的数量,订单的金额等信息;另外再编写Confirm的逻辑,即在临时表中删除相关记录,生成订单,告知CRM、物流等系统,等等;以及Cancel逻辑,即恢复库存和买家账户金额,删除临时表相关记录。

我们能找到的最早出处是atomikos的ExtremeTransactions产品中提出了TCC的概念。在撰写本文时,atomikos网站不能访问,只能在百度百科里面找到一篇 相关的文章。目前,TCC概念最大的应用,一般认为是支付宝XTS系统。

为了更好地介绍TCC,这里先引入这么一个概念:最终一致性

最终一致性目前没有公认的定义。一般来说,它是指事务进行中,某些分支的中间状态可以被事务外观察到,即"读未提交",从而导致多个分支的状态可能不一致,但所有分支 最终 会达到要么全部提交,要么全部回滚的一致状态。

很明显,最终一致性部分牺牲了ACID中的C和I,但它带来了可观的收益:资源不再需要长时间上锁,极大地提高了吞吐量。

最终一致性在互联网应用场景中被广泛用做吞吐量和ACID的妥协点。

让我们回到前面TCC的例子。在这个流程中,商品库存和买家余额都没有被锁住,因此可以得到很高的吞吐量。但在交易进行中,商品库存和买家余额的变化就已经被外界感知到,而物流系统却可能还没有相应的记录,此时数据是不一致的,但最终(无论是Confirm阶段结束后,还是Cancel阶段结束后)它们会一致。

相关文章

  • TCC的应用场景

    TCCTCC(Try、Confirm、Cancel)是两阶段提交的一个变种。TCC提供了一个框架,需要应用程序按照...

  • happylifeplat-tcc

    happylifeplat-tcc 浅谈分布式事务原理及其应用场景 概念:分布式事务就是指事务的参与者、支持事务的...

  • 分布式事务主流解决方案优缺点大pk

    基于 XA 协议的应用场景 XA 协议在架构上与 TCC 模型相比,最大的不同是 XA 直接作用于资源层,而后者作...

  • TCC分布式事务

    目录 一、写在前面 二、业务场景介绍 三、进一步思考 四、落地实现TCC分布式事务 (1)TCC实现阶段一:Try...

  • 【8】分布式事务

    【两阶段提交方案】-- 单块应用的跨多个库的分布式事务 【TCC方案】

  • tcc柔性事务细节

    本文面对对tcc有一定了解的朋友。 tcc,是分布式系统场景下的一种事务解决方案。他和传统的分布式事务的最大区别是...

  • 如何实现一个TCC分布式事务框架的一点思考

    一个TCC事务框架需要解决的当然是分布式事务的管理。关于TCC事务机制的介绍,可以参考TCC事务机制简介。 TCC...

  • 高手通用分布式事务框架!

    一个TCC事务框架需要解决的当然是分布式事务的管理。关于TCC事务机制的介绍,可以参考TCC事务机制简介。 TCC...

  • TCC分布式事务管理器

    一,TCC分布式事务管理器 ByteTCC Himly TCC-transaction 二,TCC事务管理器的实现...

  • 分布式事务之解决方案(TCC)

    4. 分布式事务解决方案之TCC 4.1. 什么是TCC事务 TCC是Try、Confirm、Cancel三个词语...

网友评论

    本文标题:TCC的应用场景

    本文链接:https://www.haomeiwen.com/subject/fpfxkrtx.html