开发者社区 > 云原生 > 正文

Seata中有 ProjectA ProjectB 两个微服务(Dubbo服务)有什么办法可以解决吗

Seata中有 ProjectA ProjectB 两个微服务(Dubbo服务) ProjectA 项目里有 dsA 和 dsB 两个数据源 , 使用 MyBatis-Plus的 @DS 管理, ProjectB 项目里有 dsC 和 dsD 两个数据源 , 使用 MyBatis-Plus的 @DS 管理, 问题: 当我有一个业务操作, ProjectA 项目 执行了 dsA , 再执行dsB , 再调用 ProjectB, ProjectB执行dsC , 接着dsD 的时候, Seata全局事务会出现回滚失败的问题. 请问一下: 目前这个问题有什么办法可以解决吗?

展开
收起
fuxixi 2022-09-26 16:59:45 922 0
1 条回答
写回答
取消 提交回答
  • dynamic-datasource-spring-boot-starter 组件内部开启seata后会自动使用DataSourceProxy来包装DataSource,所以需要以下方式来保持兼容 1.如果你引入的是seata-all,请不要使用@EnableAutoDataSourceProxy注解. 2.如果你引入的是seata-spring-boot-starter 请关闭自动代理 seata: enable-auto-data-source-proxy: false 把seata自带的自动代理关闭一下。

    2022-09-26 17:31:04
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
微服务治理技术白皮书 立即下载
微服务与Serverless 立即下载
EDAS4.0 助力企业一站实现微服务架构转型与 K8s 容器化升级 立即下载