概述

多数据源单服务写入, 分布式事务实现

使用随机数控制产生异常

注: 网上很多都是只有多数据源配置,实际不能控制事务统一回滚,
单服务场景下如果多个数据源只有一个写,剩下都是读, 则不需要分布式事务

为减少篇幅,详细代码在代码仓库,可自行参考

版本

springboot 2.1.7.RELEASE

配置引入

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jta-atomikos</artifactId>
</dependency>

增加配置类

AtomikosJtaPlatform

JPAAtomikosTransactionConfig Atomikos事务配置类

PrimaryConfig 主数据源配置

SecondaryConfig 其它数据源配置

数据对象实现

User

增加仓储实现

需要分别实现primary和secondary, 从而支持多个数据源访问

PrimaryUserRepository

SecondaryUserRepository

实现服务类

PrimaryUserService

SecondaryUserService

ExampleService

负责统一调用 PrimaryUserService 和 SecondaryUserService,
模拟一个服务同时访问多个服务类(每个服务类引用了不同数据源)

如果其中某个服务抛出异常,则整个事务回滚, @Transactional(rollbackOn =
Exception.class) 是必须的

测试

com.example.springbootatomikos.services.UserServiceTest#testSave

代码

github地址

gitee地址

atomikos实现分布式事务相关推荐

  1. spring整合atomikos实现分布式事务的方法示例_分布式事务一:基于数据库原生分布式事务方案实现...

    1.分布式事务模型 ACID 实现 1.1.X/Open XA 协议(XA) 最早的分布式事务模型是 X/Open 国际联盟提出的 X/Open Distributed Transaction Pro ...

  2. spring整合atomikos实现分布式事务的方法示例_分布式-分布式事务处理

    在之前的文章"如何合理的使用动态数据源"中,其实也提到了分布式事务相关的场景如:利用多数据源实现读写分离,但直接使用动态数据源频繁其实是很消耗资源的,而且就是当业务service一 ...

  3. spring事务隔离级别、传播行为以及spring+mybatis+atomikos实现分布式事务管理

    1.事务的定义:事务是指多个操作单元组成的合集,多个单元操作是整体不可分割的,要么都操作不成功,要么都成功.其必须遵循四个原则(ACID). 原子性(Atomicity):即事务是不可分割的最小工作单 ...

  4. spring整合atomikos实现分布式事务的方法示例_分布式事务中的XA和JTA

    在介绍这两个概念之前,我们先看看是什么是X/Open DTP模型. X/Open X/Open,即现在的open group,是一个独立的组织,主要负责制定各种行业技术标准.X/Open组织主要由各大 ...

  5. JTA+Atomikos解决分布式事务问题

    JTA分布式事务:Java Transaction API,允许应用程序执行分布式事务处理. Atomikos:为java平台提供增值服务并且开源的事务管理器. 基于xa协议,xa协议是以两阶段提交协 ...

  6. java分布式事务 实例_spring整合atomikos实现分布式事务的方法示例

    前言 Atomikos 是一个为Java平台提供增值服务的并且开源类事务管理器,主要用于处理跨数据库事务,比如某个指令在A库和B库都有写操作,业务上要求A库和B库的写操作要具有原子性,这时候就可以用到 ...

  7. spring 事务的实现方式和原理_spring整合atomikos实现分布式事务

    前言 Atomikos 是一个为Java平台提供增值服务的并且开源类事务管理器,主要用于处理跨数据库事务,比如某个指令在A库和B库都有写操作,业务上要求A库和B库的写操作要具有原子性,这时候就可以用到 ...

  8. springBoot入门总结(八)使用 jta+atomikos 整合springBoot分布式事务

    一.JTA:Java Transaction Manager 事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity ).一致性 ( Consistency ).隔离性 ...

  9. 分布式事务解决方案——基于Atomikos的实现

    声明:以下关于"JTA规范事务模型"."Spring JTA分布式事务的实现"等内容均来源于其他大佬的博客内容,并已经表明出处. 1.JTA规范事务模型   J ...

最新文章

  1. 2020 AI前沿交流大会 | 聚焦CV/NLP最新学术及工业界实践
  2. 关于/etc/fstab
  3. 修改Centos7默认yum源为阿里云源
  4. 使用 frida+dexdump对apk脱壳
  5. linux/npm/git的简单操作
  6. [luoguP2324] [SCOI2005]骑士精神(A*?)
  7. idea--Project Structure
  8. mysql 数据库异常_Mysql连接数据库异常汇总【必收藏】
  9. 第三十六课:告别演出
  10. 稀疏矩阵转置 java代码_三元组稀疏矩阵的快速转置
  11. python归纳算法_【Python算法】归纳、递归、归简
  12. hrbust 哈理工oj 1921 三原色(改进版)【集合相关问题】
  13. attachEvent报错原因
  14. 面向未来的100项颠覆性创新技术!欧盟重磅报告
  15. 对待工作的态度和意识
  16. 新零售全渠道营销,线上经营,线下成长
  17. 英语口语100之每日十句口语
  18. web端接收读卡器卡片信息
  19. 信息安全工程师(软考中级)
  20. 1.ME32F103单片机ADC和DMA

热门文章

  1. 【SugerTangYL】SPI协议及其变体
  2. 小姨又又来了之!给我儿子写一个英语闯关脚本!好还会Python
  3. 如何选择Z检验、T检验和卡方检验?
  4. 超级卵杰的自动脚本(3)签到 抢分 入团 压分功能。
  5. 数据库之数据库编码格式
  6. java cause_java常见错误Cause java.sql.SQLSyntaxErrorException Table ‘m
  7. .net 连接oracle 无法解析指定的连接标识符,asp.net – Oracle.ManagedDataAccess:TNS:无法解析指定的连接标识符...
  8. 很重要:数据的三维可视化
  9. GIS空间分析 三维分析3 要素三维可视化
  10. 显著性、显著水平 学习笔记