Feign接口降级及全局异常处理条件下seata全局事务不回滚问题解决方案

1.问题描述

开启全局事务demo:

/**
 * @Description: 同步数据
 * @Param: [schemeSyncVo]
 * @return: com.vulcan.base.domain.R<java.lang.Boolean>
 * @Author: Lvlin.Lou
 * @Date: 2029/9/16 10:59
 */
@GlobalTransactional
@Transactional
@Override
public R<Boolean> synchronousDataRelation(SchemeSyncVo schemeSyncVo) {
    resourceService.synchronousDataRelation(schemeSyncVo);
    changeDemandStatus(schemeSyncVo.getUserDemandId(),IntegerUtils.ONE,IntegerUtils.ONE);
    return R.ok(Boolean.TRUE);
}
  • @GlobalTransactional在synchronousDataRelation方法上开启全局事务

  • resourceService.synchronousDataRelation(schemeSyncVo) 调用Feign接口,在资源微服务中添加数据同步关系(insert)

  • changeDemandStatus私有方法在项目微服务中修改需求状态(update)

  • 无异常全局提交没有问题

  • changeDemandStatus 内有异常 全局回滚没有问题

  • resourceService.synchronousDataRelation(schemeSyncVo)内抛出异常,调用方ch

上一篇:微服务-Feign性能调优3


下一篇:SpringCloud06---Feign:负载均衡(集成Ribbon)