无风无影

   ::  :: 新随笔  ::  ::  :: 管理

分布式一致性协议【TCC】

所谓的TCC编程模式,也是两阶段提交的一个变种。TCC提供了一个编程框架,将整个业务逻辑分为三块:Try、Confirm和Cancel三个操作。以在线下单为例,Try阶段会去扣库存,Confirm阶段则是去更新订单状态,如果更新订单失败,则进入Cancel阶段,会去恢复库存。总之,TCC就是通过代码人为实现了两阶段提交,不同的业务场景所写的代码都不一样,复杂度也不一样,因此,这种模式并不能很好地被复用。

 

 

TCC,是基于补偿型事务的AP系统的一种实现,具有最终一致性。

对比与前面提到的两阶段提交法, 有两大优势:

  • TCC能够对分布式事务中的各个资源进行分别锁定,分别提交与释放,例如,假设有AB两个操作,假设A操作耗时短,那么A就能较快的完成自身的try-confirm-cancel流程,释放资源,无需等待B操作。如果事后出现问题, 追加执行补偿性事务即可。
  • TCC是绑定在各个子业务上的(除了cancle中的全局回滚操作),也就是各服务之间可以在一定程度上”异步并行”执行。

适用场景

  • 严格一致性
  • 执行时间短
  • 实时性要求高

举例:红包、收付款业务。

posted on 2018-11-30 18:26  NWNS-无风无影  阅读(616)  评论(0)    收藏  举报