分布式事务框架使用的一个坑

     

      背景介绍:

      最近一个积分兑换优惠券的问题排查了半天,终于找出了问题。至于这个原因我任务分布式事务框架还是可以做一下优化的。

      流程介绍:

      
      
 
      
 

      问题说明:

      在调用扣积分的过程中,dubbo调用超时抛出异常,主事务捕获异常,调用事务回滚逻辑。所以直接调用了积分补偿的接口,但是积分补偿的接口判断没有该业务流水(为了接口的幂等性)直接返回正确结果。分布式事务以为补偿已经成功,整个事务完成。但是扣积分的接口超时的时间是不定的,如果在补偿之后才扣成功,那么就相当于补偿失败了。我们遇到的正是这种情况,所以导致分布式事务监控系统查到了事务补偿已经正确执行,但是扣的积分没有返回的情况。

      

     

猜你喜欢

转载自labreeze.iteye.com/blog/2354603