您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
分布式事务——核心概念
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
分布式事务——核心概念
Apache ShardingSphere
2021-01-19
IP归属:未知
22600浏览
# 导览 本小节主要介绍分布式事务的核心概念,主要包括: * 基于 XA 协议的两阶段事务 * 基于 Seata 的柔性事务 ## XA 协议的两阶段事务 两阶段事务提交采用的是 X/OPEN 组织所定义的[DTP模型](http://pubs.opengroup.org/onlinepubs/009680699/toc.pdf)所抽象的 AP(应用程序), TM(事务管理器)和 RM(资源管理器) 概念来保证分布式事务的强一致性。 其中 TM 与 RM 间采用 XA 的协议进行双向通信。 与传统的本地事务相比,XA 事务增加了准备阶段,数据库除了被动接受提交指令外,还可以反向通知调用方事务是否可以被提交。 `TM` 可以收集所有分支事务的准备结果,并于最后进行原子提交,以保证事务的强一致性。 ![两阶段提交模型](//img1.jcloudcs.com/developer.jdcloud.com/e3184af6-9e6e-48a1-94ea-2b3eb5037bb620210117151452.png) Java 通过定义 JTA 接口实现了 XA 模型,JTA 接口中的 `ResourceManager` 需要数据库厂商提供 XA 驱动实现, `TransactionManager` 则需要事务管理器的厂商实现,传统的事务管理器需要同应用服务器绑定,因此使用的成本很高。 而嵌入式的事务管器可以以 jar 包的形式提供服务,同 Apache ShardingSphere 集成后,可保证分片后跨库事务强一致性。 通常,只有使用了事务管理器厂商所提供的 XA 事务连接池,才能支持 XA 的事务。Apache ShardingSphere 在整合 XA 事务时,采用分离 XA 事务管理和连接池管理的方式,做到对应用程序的零侵入。 ## Seata 的柔性事务 [Seata](https://github.com/seata/seata)是阿里集团和蚂蚁金服联合打造的分布式事务框架。 其 AT 事务的目标是在微服务架构下,提供增量的事务 ACID 语意,让开发者像使用本地事务一样,使用分布式事务,核心理念同 Apache ShardingSphere 一脉相承。 Seata AT 事务模型包含TM (事务管理器),RM (资源管理器) 和 TC (事务协调器)。 TC 是一个独立部署的服务,TM 和 RM 以 jar 包的方式同业务应用一同部署,它们同 TC 建立长连接,在整个事务生命周期内,保持远程通信。 TM 是全局事务的发起方,负责全局事务的开启,提交和回滚。 RM 是全局事务的参与者,负责分支事务的执行结果上报,并且通过 TC 的协调进行分支事务的提交和回滚。 Seata 管理的分布式事务的典型生命周期: 1. TM 要求 TC 开始一个全新的全局事务。TC 生成一个代表该全局事务的 XID。 2. XID 贯穿于微服务的整个调用链。 3. 作为该 XID 对应到的 TC 下的全局事务的一部分,RM 注册本地事务。 4. TM 要求 TC 提交或回滚 XID 对应的全局事务。 5. TC 驱动 XID 对应的全局事务下的所有分支事务完成提交或回滚。 ![Seata AT事务模型](//img1.jcloudcs.com/developer.jdcloud.com/d32329ee-7bf5-46ab-861d-18614ae03d8620210117151646.png "Seata AT事务模型")
原创文章,需联系作者,授权转载
上一篇:分布式事务——概览
下一篇:分布式事务——实现原理
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
数据库技术的发展与变革方兴未艾,NewSQL的出现,只是将各种所需技术组合在一起,而这些技术组合在一起所实现的核心功能,推动着云原生数据库的发展。 NewSQL的三种分类中,新架构和云数据库涉及了太多与数据库相关的底层实现,为了保证本文的范围不至太过发散,我们重点介绍透明化分片数据库中间件的核心功能与实现原理,另外两种类型的NewSQL在核心功能上类似,但实现原理会有所差别。
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
Apache ShardingSphere针对新业务上线、旧业务改造分别提供了相应的全套脱敏解决方案。
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
ShardingSphere对于XA方案,提供了一套SPI解决方案,对Narayana进行了整合,Narayana初始化流程,开始事务流程,获取连接流程,提交事务流程,回滚事务流程。
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
5.x 是 Apache ShardingSphere从分库分表中间件向分布式数据库生态转化的里程碑,从 4.x 版本后期开始打磨的可插拔架构在 5.x 版本已逐渐成型,项目的设计理念和 API 都进行了大幅提升。欢迎大家测试使用!
最新回复
丨
点赞排行
共0条评论
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号