reference:
TCC (Try-Confirm-Cancel)是服务化的两阶段提交协议,具体含义如下:
Try
检测预留资源:尝试执行,完成所有业务检查(一致性), 预留必须业务资源(准隔离性)Confirm
执行真正的业务操作提交:如果所有分支的 Try
都成功了,则走到 Confirm
阶段。不作任何业务检查,只使用 Try
阶段预留的业务资源Cancel
释放预留资源:如果有一个分支 Try
失败,则走到 Cancel
阶段,释放预留的资源业务开发者需要实现这三个服务接口,第一阶段服务由业务代码编排来调用 Try
接口进行资源预留,所有参与者的 Try
接口都成功了,事务管理器会提交事务,并调用每个参与者的 Confirm
接口真正提交业务操作,否则调用每个参与者的 Cancel
接口回滚事务
用户实现 TCC 服务之后,该 TCC 服务将作为分布式事务的其中一个资源,参与到整个分布式事务中