seata 和 sharding-jdbc 结合. A服务调用B服务。两个服务都加上@ShardingTransactionType(value = TransactionType.BASE)注解,然后b服务拿到事务信息为空。是什么原因啊?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 您在使用 Seata 与 Sharding-JDBC 结合的场景中遇到问题,具体表现为服务 A 调用服务 B,两个服务都使用了 @ShardingTransactionType(value = TransactionType.BASE)
注解来管理事务,但在服务 B 中获取到的事务信息为空。
原因分析:
解决步骤:
PROPAGATION_REQUIRED
或者 Seata 对应的传播模式来加入当前事务上下文。txServiceGroup
)、注册中心配置以及网络通信配置,确保两服务间的 Seata 客户端配置一致且指向正确的协调服务。注意事项:
进一步支持: 如果以上步骤未能解决问题,请收集详细的错误日志、配置文件片段及服务调用链路信息,并联系阿里云技术支持获取更专业的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。