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不太好定义及处理。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 面试题tcc补偿事务
发表评论 取消回复