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配套使用,事务才会生效。

相关推荐
赵渝强老师1 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石6 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
于眠牧北2 天前
MySQL的锁类型,表锁,行锁,MVCC中所使用的临键锁
mysql
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Turnip12024 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql