Content #
TCC 包含的预留、确认或撤销这 2 个阶段:
-
Try 是指预留,它和二阶段提交协议中,提交请求阶段的操作类似,系统会将需要确认的资源预留、锁定,确保确认操作一定能执行成功。
-
Confirm 是指确认,它呢和二阶段提交协议中,提交执行阶段的操作类似,系统将最终执行的操作。
-
Cancel 是指撤销,比较像二阶段提交协议中的回滚操作,具体指系统将撤销之前预留的资源,也就是撤销已执行的预留操作对系统产生的影响。
二阶段提交协议和 TCC 的目标,都是为了实现分布式事务,这也就决定了它们“英雄所见略同”,在思想上是类似的,但这两个算法解决的问题场景是不同的,一个是数据层面,一个是业务层面,这就决定了它们在细节实现是不同的。