前言:
XA模式
XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。
正常情况:

异常情况:

一阶段:
-
事务协调者通知每个事物参与者执行本地事务
-
本地事务执行完成后报告事务执行状态给事务协调者,此时事务不提交,继续持有数据库锁
二阶段:
-
事务协调者基于一阶段的报告来判断下一步操作
-
如果一阶段都成功,则通知所有事务参与者,提交事务
-
如果一阶段任意一个参与者失败,则通知所有事务参与者回滚事务
-
Seata中的XA模型
Seata对原始的XA模式做了简单的封装和改造,以适应自己的事务模型,基本架构如图:

总结
XA模式的优点是什么?
•
事务的强一致性,满足
ACID
原则。
•
常用数据库都支持,实现简单,并且没有代码侵入
XA模式的缺点是什么?
•
因为一阶段需要锁定数据库资源,等待二阶段结束才释放,性能较差
•
依赖关系型数据库实现事务
动手部署seata
修改配置
registry {
# tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等
type = "nacos"
nacos {
# seata tc 服务注册到 nacos的服务名称,可以自定义
application = "seata-tc-server"
serverAddr = "你的nacos地址:8848"
group = "DEFAULT_GROUP"
namespace = ""
cluster = "TKY"
username = "nacos"
password = "nacos"
}
}
config {
# 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置

本文介绍了XA模式的分布式事务处理标准,包括正常和异常情况下的流程,以及Seata如何改造和封装XA模式。Seata通过简单的架构实现了事务的强一致性和ACID特性,但性能和依赖性是其缺点。文章还详细展示了如何部署Seata,配置数据库和微服务集成,最后通过实例验证了XA模式的分布式事务可行性。
最低0.47元/天 解锁文章
5822

被折叠的 条评论
为什么被折叠?



