多租户seata回滚数据源错误问题

Blade 未结 2 938
mta
mta 2021-12-03 17:07

一、该问题的重现步骤是什么?

baldex数据库独立;业务数据库独立,A、B对应业务数据库;

A、B服务启动会根据租户初始化数据;master对应的是bladex,其他是租户数据源;

A、B服务均使用Seata,上下游服务xid已经处理好绑定同一个;

A服务调用B的Feign接口成功,A服务下一步执行报错,A服务回滚成功;B服务走seata的回滚通知,拿到的数据源为master,但是master数据源对应baldex的数据库,其undo_log表并没有业务的信息;真正的业务undo_log信息是在业务数据库里,seata根据xid去baldex数据库找不到回滚信息,默认处理完成,实际上并没能回滚。


二、你期待的结果是什么?实际看到的又是什么?

希望大佬给个较为合适的解决方案,多谢。

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

2.8.1,

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  •  zhx1994
    zhx1994 (楼主)
    2021-12-03 17:39

    建议你用一个数据源,有访问别的数据库的需求用服务调用的方式。

    作者追问:2021-12-03 17:39

    还有没有更好的方案。

提交回复