Sharding-JDBC分布式事务总结(三)之XA事务(ATOMIKOS)

Sharding分布式事务总结之XA事务(ATOMIKOS)

1.Sharding所支持的XA事务

支持ATOMIKOS 事务,NARAYANA 事务,BITRONIX 事务。
默认的 XA 事务管理器为 Atomikos。

2. ATOMIKOS事务

1.基本原理
一阶段预提交,二阶段提交/回滚。如果二阶段提交失败(数据库服务器断电)会生成日志,待服务器重启恢复后,继续当前提交或者回滚。
在这里插入图片描述
2.优缺点
优点:事务操作时会对资源进行锁定,保证数据的强一致性。
缺点:由于对资源锁定会造成同步阻塞,可用性大大降低,效率也不高。比如二阶段提交失败,那么在未恢复前会锁住当前事务下所有资源。

3.使用方法

	<!-- 添加sharding-jdbc依赖 -->
	<dependency>
		<groupId>org.apache.shardingsphere</groupId>
		<artifactId>shardingsphere-jdbc-core</artifactId>
		<version>5.0.0-alpha</version>
	</dependency>
	<!-- 使用 XA 事务 -->
	<dependency>
		<groupId>org.apache.shardingsphere</groupId>
		<artifactId>shardingsphere-transaction-xa-core</artifactId>
		<version>5.0.0-alpha</version>
	</dependency>

本项目使用的是读取Yaml配置的方式启动sharding,依赖引用为shardingsphere-jdbc-core,其他方式读取配置文件详见官网。
启动时日志输出
在这里插入图片描述
注册RM数据源
在这里插入图片描述
使用方法
@Transactional与@ShardingTransactiontype()配合使用
在这里插入图片描述

本项目经过测试发现官方提供的分布式事务切换注解@ShardingTransactionType(TransactionType.XA) 无效,猜测原因以及解决办法可以看上节内容。
如此便可以成功使用Sharding分布式事务之XA事务,下一节将总结介绍BASE事务,就也就是seat框架的AT模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值