分布式事务-TCC异常-空回滚

1、空回滚问题:

因为是全局事务,A服务调用服务C的try时服务出现异常服务B因为网络或其他原因还没执行try方法,TCC因为C的try出现异常让所有的服务执行cancel方法,比如B的try是扣减积分 cancel是增加积分,还没扣减就增加显然是有问题的。

2、解决方法:

增加一张日志表,执行cancel之前检查是否进行了try方法,只有执行了try方法才能执行cancel方法,如图所示。
分布式事务-TCC异常-空回滚_第1张图片

你可能感兴趣的:(分布式)