Spring Boot Druid 多数据源 Atomikos 分布式事务缺陷

原创 2018年04月15日 12:24:14

多数据源动态加载事务控制

源码下载地址:https://github.com/qingqiangqiang/dynamic_datasource.git

根据spring boot官方文档描述,如果spring boot检测到了jta环境,会自动进行配置,故此处不需要进行事务配置
这里写图片描述
官方地址:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-jta.html
atomikos事务管理自动加载
atomikos事务管理加载在具体数据源上1
atomikos事务管理加载在具体数据源上2
可以看到Atomikos会分别管理在两个数据源上。
但这种事务管理多数据源,如果A数据源操作成功,B数据源操作失败,A数据源不会回滚。如下:
这里写图片描述
我们再看代码执行结果和数据库结果:
这里写图片描述
这里写图片描述

可见这种事务管理,对于多数据原来说,异常回滚的处理,并不能正确处理,还是需要使用托管事务管理器。

    @Bean
    public DataSourceTransactionManager transactionManager(@Qualifier("dynamicDS1") DynamicDataSource dynamicDS1) {
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
        transactionManager.setDataSource(dynamicDS1);
        return transactionManager;
    }

这里写图片描述

这里写图片描述
可以看到,托管后的事务会管理在动态数据源的bean上,这样就会有效控制多数据源的事务。再次执行test,数据库不会再有新数据生成。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24228375/article/details/79948157

Spring Boot Druid 多数据源 Atomikos 分布式事务

1、前言由于最近需要做一个接口平台,用到了两个数据库(业务库和系统库分离),需要考虑同时操作两个数据库的数据时事务的管理,这时搜索了下资料,发现使用分布式事务可满足现状需求。之前也没接触过分布式事务,...
  • a510835147
  • a510835147
  • 2017-07-21 21:58:12
  • 6632

Spring-boot + atomikos + druid分布式事务配置

Spring-boot + atomikos + druid分布式事务配置1.额外依赖项 javax.transaction jta 1.1 com.a...
  • imthrall
  • imthrall
  • 2017-09-01 16:05:38
  • 712

spring boot+atomikos+mybatis+druid分布式事务实现

配置数据源新建配置类DataSourceConfig:public class DataSourceConfig { private static final String PRIMARY_MA...
  • u011726984
  • u011726984
  • 2017-12-29 17:19:34
  • 640

Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis

项目进行读写分离及分库分表,在一个业务中,在一个事务中处理时候将切换多个数据源,需要保证同一事务多个数据源数据的一致性。此处使用atomikos来实现:最后附源码: 1:spring3.0之后不再支持...
  • typa01_kk
  • typa01_kk
  • 2016-04-19 14:57:25
  • 9904

springboot(十三)多数据源分布式事物管理

当只有一个数据源的时候,添加标签@EnableTransactionManagement,然后在dateBaseConfig里添加 @Bean(name = "transactionMana...
  • u011493599
  • u011493599
  • 2017-03-27 16:45:37
  • 5040

spring4+mybatis3+atomikos3.9多数据源分布式事务控制

spring4+mybatis3+atomikos3.9分布式事务控制pom文件关键jar一览 org.springframework ...
  • zeroctu
  • zeroctu
  • 2016-11-10 15:39:09
  • 1943

spring atomikos 实现多数据源 分布式事务

spring 2.5以后,spring 删除了JotmFactoryBean ,spring不再提供对jotm提供支持 spring atomikos 集成 atomikos需要的jar a...
  • zhangxiaoqi
  • zhangxiaoqi
  • 2014-12-15 10:53:22
  • 3782

3分钟搞定SpringBoot+Mybatis+druid多数据源和分布式事务

在一些复杂的应用开发中,一个应用可能会涉及到连接多个数据源,所谓多数据源这里就定义为至少连接两个及以上的数据库了。        下面列举两种常用的场景:         一种是读写分离的数据源,...
  • qq_29242877
  • qq_29242877
  • 2018-01-11 13:50:09
  • 1035

Springboot+atomikos+jta实现分布式事务统一管理

一,什么是分布式事务? 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作...
  • qq_37142346
  • qq_37142346
  • 2017-11-09 22:43:58
  • 282

SpringBoot+Atomikos分布式事务及多数据源动态切换,两种demo

  • 2017年08月29日 14:02
  • 180KB
  • 下载
收藏助手
不良信息举报
您举报文章:Spring Boot Druid 多数据源 Atomikos 分布式事务缺陷
举报原因:
原因补充:

(最多只允许输入30个字)