自学内容网 自学内容网

面试题tcc补偿事务

TCC补偿事务的核心思想是针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。‌ TCC(‌Try/‌Confirm/‌Cancel)编程模式的核心思想是:针对每个分支事务操作,都要向全局事务发起方注册Try、Confirm和Cancel三个操作,具体这些操作由我们自己根据业务进行实现,然后分为两个阶段去执行:Try阶段主要是做业务检查(一致性)及资源预留,Confirm阶段主要是做确认提交,Cancel阶段主要是在业务执行错误,需要回滚的状态下执行的业务取消。‌12

TCC补偿事务的三个阶段
‌Try阶段‌:主要是对业务系统做检测及资源预留。例如,在转账操作中,Try阶段会检查账户A的余额是否足够,并冻结相应的金额。
‌Confirm阶段‌:主要是对业务系统做确认提交。如果Try阶段执行成功,则进入Confirm阶段,提交事务。例如,在转账操作中,Confirm阶段会解冻账户A冻结的金额,并将金额转移到账户B。
‌Cancel阶段‌:主要是在业务执行错误,需要回滚的状态下执行的业务取消。例如,在转账操作中,如果Confirm阶段失败,则进入Cancel阶段,回滚Try阶段的操作,释放账户A冻结的金额。
TCC补偿事务的优点和缺点
‌优点‌:相比两阶段提交,可用性比较强。
‌缺点‌:数据的一致性要差一些。TCC属于应用层的一种补偿方式,需要程序员在实现的时候多写很多补偿的代码,在一些场景中,一些业务流程可能用TCC不太好定义及处理。


原文地址:https://blog.csdn.net/dengshangyicenglou/article/details/142919655

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!