目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7091k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(631)
赞(0)

Sharding-JDBC整合XA数据源

XAShardingSphereTransactionManager为Apache ShardingSphere 的分布式事务的 XA 实现类。它主要负责对多数据源进行管理和适配,并且将相应事务的开启、提交和回滚操作委托给具体的 XA 事务管理器。ShardingSphere整合XA事务时,分离了XA事务管理和连接池管理,这样接入XA时,可以做到对业务的零侵入。

ShardingSphere支持以下功能: 支持数据分片后的跨库XA事务; 两阶段提交保证操作的原子性和数据的强一致性; 服务宕机重启后,提交/回滚中的事务可自动恢复; SPI机制整合主流的XA事务管理器,默认Atomikos; 同时支持XA和非XA的连接池; 提供spring-boot和namespace的接入端。

image-20220302150358316

  • 开启全局事务

    XAShardingSphereTransactionManager将调用具体的 XA 事务管理器开启 XA 全局事务,以 XID 的形式进行标记。

  • 执行真实分片SQL

    XAShardingSphereTransactionManager将数据库连接所对应的 XAResource注册到当前 XA 事务中之后,事务管理器会在此阶段发送XAResource.start命令至数据库。数据库在收到XAResource.end命令之前的所有 SQL 操作,会被标记为 XA 事务。

示例中的sql1和sql2将会被标记为 XA 事务。

  • 提交或回滚事务

    XAShardingSphereTransactionManager在接收到接入端的提交命令后,会委托实际的 XA 事务管理进行提交动作, 事务管理器将收集到的当前线程中所有注册的 XAResource,并发送XAResource.end指令,用以标记此 XA 事务边界。 接着会依次发送prepare指令,收集所有参与 XAResource 投票。 若所有 XAResource 的反馈结果均为正确,则调用commit指令进行最终提交; 若有任意 XAResource 的反馈结果不正确,则调用 rollback指令进行回滚。 在事务管理器发出提交指令后,任何 XAResource 产生的异常都会通过恢复日志进行重试,以保证提交阶段的操作原子性,和数据强一致性。

6. 常见的分布式事务解决方案有?

A 2PC、3PC

B XA

C 使用MQ

D 以上都对

答案

6=>D

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2