分布式事务(Seata-XA模式) XA规范 XA是规范,目前主流数据库都实现了这种规范,实现的原理都是基于两阶段提交。 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。 两阶段提交 正...
在Seata定义的分布式事务框架内,利用事务资源(数据库、消息服务等)对XA协议的支持,以XA协议的机制来管理分支事务的一种事务模式。 执行阶段: 可回滚:业务SQL操作放在XA分支中进行,由资源对 XA 协议的支持来保证可回滚 持久化:XA 分支完成后,执行XA prepare,同样由资源对XA 协议的支持来保证持久化(即,之后任何意外...
Seata XA模式就是把XA协议归纳到Seata中,在Seata定义的分布式事务架构内,利用数据库、消息服务等对XA的支持,以XA协议的机制来管理分布式事务的一种机制。 Seata XA、AT、 SAGA、TCC都是遵循整个Seata事务模式来进行的。 XA模式开启,执行sql,XA模式结束,这是XA的准备阶段,第二阶段是XA进行提交或回滚。 在Seata的XA...
但是,在Seata中三个角色的定义与XA协议标准中角色的定义有所区别: 事务管理器(Transaction Manager)应该对应XA协议中的应用程序(Application Program) 事务协调者(Transaction Coordinator)对应XA协议中的事务管理器(Transaction Manager) 在Seata对原始的XA模式做了简单的封装和改造,以适应自己的事务模型,基本架构如图: RM...
AT与XA之间的关系 总结 1. XA模式是什么? 首先正如煊檍兄所言,了解了什么是XA与什么是Seata定义的事务模式,便一目了然。 1.1 什么是XA 用非常官方的话来说 XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准。
利用git 命令把 Seata XA 模式示例下载到本地,下载地址:https://github.com/seata/seata-samples/tree/master/seata-xa 2 示例结构 示例采用 spring-cloud 微服务架构,数据库采用 mysql,数据库连接池采用 druid,数据库 DAO 层采用 jdbcTemplate。 把Seata XA 模式示例装载到 IDEA 中。
这时候讲到这里,XA跟AT的关系应该一目了然了,准确地说,其实应该说是分布式事务跟数据库本地事务的关系,可以说XA的缺点造成了AT模式的出生,锁在多侧(多个库),资源阻塞,性能差。 而AT就像为了把事务的实现决定权从数据库手中,放到了Seata中,自实现sql解析,自实现undolog(redolog),既然我们没有 办法去直接优化...
Seata提供了XA、AT、TCC、SAGA四种不同的分布式事务解决方案: (1)XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入。 (2)TCC模式:最终一致的分阶段事务模式,有业务侵入。 (3)AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式。
Seata的XA模式就是为了解决分布式事务问题而设计的。XA模式基于XA/JTA(Java Transaction API)规范,该规范定义了全局事务和分支事务,以及它们之间的交互。在XA模式下,Seata将全局事务和分支事务的协调和管理交给了TC(Transaction Coordinator,事务协调者)来完成。 二、Seata XA模式的使用 使用Seata的XA模式主要需要以下步骤...
我们知道Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA四种事务模式,为用户打造一站式的分布式解决方案,包括事务管理、本地事务协调、分布式事务日志和分布式锁等组件。之前我们学习了Seata的简介、Seata客户端和服务端的搭建集成、本篇...