ShardingSphere事务

ShardingSphere 提供了两种主要的事务管理方式:

  1. 本地事务(Local Transaction)

    • 每个数据库资源使用自己的本地事务。适用于不涉及跨库事务的简单场景。
    • 在 Sharding JDBC 中,默认使用本地事务管理模式。当你的事务操作都在一个单独的数据库内完成时,本地事务足以处理。
  2. XA 分布式事务

    • 使用分布式事务协议(如 XA)来管理涉及多个数据库资源的事务。
    • 通过引入第三方的分布式事务管理器(如 Atomikos、Narayana 或 Bitronix),ShardingSphere 可以支持全局事务管理。ShardingSphere默认的XA事务管理器为Atomikos。

ShardingSphere支持将普通的数据库连接池,转换为支持XA事务的连接池,对HikariCP, Druid和DBCP2连接池内置支持,无需额外配置。 其它连接池需要用户实现DataSourceMapConverter的SPI接口进行扩展。

SpringBoot使用方式

引入Maven依赖:

XML 复制代码
<dependency>
    <groupId>io.shardingsphere</groupId>
    <artifactId>sharding-transaction-spring</artifactId>
    <version>${sharding-sphere.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
    <version>${spring-boot.version}</version>
</dependency>

业务代码

在需要事务的方法或类中添加相关注解即可,例如:

java 复制代码
@ShardingTransactionType(TransactionType.LOCAL)
@Transactional
java 复制代码
@ShardingTransactionType(TransactionType.XA)
@Transactional

注意:@ShardingTransactionType需要同Spring的@Transactional配套使用,事务才会生效。

相关推荐
瀚高PG实验室8 分钟前
使用pg_stat_statements抓取数据库TOP SQL
数据库·sql·postgresql·瀚高数据库
yanwumuxi2 小时前
【数据库系列】opensearch数据备份和恢复
数据库
anxiao_m2 小时前
2026企业AI数字孪生选型攻略,不同场景对应不同解决方案
大数据·网络·数据库
SelectDB2 小时前
从 ClickHouse 迁移到 Doris:SQL 兼容、同步与验证清单(实战笔记)
大数据·数据库·数据分析
这个DBA有点耶2 小时前
非关系型数据库到底有几种?键值、文档、列族、图,一篇讲透
mysql·架构·nosql
SelectDB2 小时前
Doris 还是 ClickHouse?一张表说清 6 个关键差异(实战笔记)
大数据·数据库·数据分析
oradh3 小时前
Oracle Undo问题总结(两类Undo表空间不足和单个会话占用大量Undo的性能问题)
数据库·oracle
企业数字化笔记3 小时前
固定资产财务账与实物账怎么对账?折旧快照、差异检测与SQL核对
android·数据库·sql
DBA_G3 小时前
GBase 8a表空间多路径存储数据迁移链路适配解析
数据库·oracle
java1234_小锋3 小时前
Tornado 6.5,全面支持 Python 3.14
数据库·python·tornado