Hmily-TCC

编辑
更新时间: 2021-09-16

TCC

TCC模式是经典的柔性事务解决方案,需要使用者提供 try, confirm, cancel 三个方法, 真正的情况下会执行 try, confirm, 异常情况下会执行try, cancelconfirm 方法并不是 必须的,完全依赖于用户的try 方法如何去写。 confirm, cancel 2个方法也需要用户去保证幂等性, 这会附加一定的工作量,由于在try方法完成之后,数据已经提交了,因此它并不保证数据的隔离性。但是这样,它的 性能相对较高,一个好的系统设计,是非常适用适用TCC模式。下面是Hmily 框架的 TCC 流程图

  • 在极端异常情况下,比如服务突然宕机,超时异常等,依赖与自身的调用任务,来进行日志的事务恢复。

  • confirm, cancel 阶段,如果有任何异常会继续执行相应的阶段,如果超过最大重试次数还未成功,将不再进行重试,需要人工介入。

  • 在服务集群的情况下,confirm, cancel 2个方法用户去尽量保证其幂等性。