网站logo
×

首页 > 最新资讯 > Spring Boot2.0之多数据源分布式事务问题

Spring Boot2.0之多数据源分布式事务问题

发布时间 2019-12-30

一、多数据源事务问题:
如上图,此时连接两个数据源,进行插入操作。出现异常时,此时事务管理器只管理了test02的这端业务代码。所以test02的这个会回滚!但是test01会入库。

二、解决方案: 使用springboot+jta+atomikos 分布式事物管理(不适合微服务,需要拿到数据源然后注册到同一个全局事务里面去)
1、引入jar

2、配置文件也要修改:

application.yml


3、新建CoreDBConfig和LogDBConfig读取数据原配置
CoreDBConfig.java

LogDBConfig.java


4、为保证多数据源切换正常,需创建CustomSqlSessionTemplate类,继承SqlSessionTemplate,覆写getSqlSessionFactory()方法

CustomSqlSessionTemplate.java









5、数据源配置类
DruidConfig.java





6、启动类,开启读取配置文件

三、原理图