Seata入门系列(二)-XA模式

Seata-XA模式

XA协议

描述了全局事务管理器与局部事务管理器之间的接口,目的是允许多个资源在同一事物中访问,能保证程序的ACID。(ACID跨应用生效)

使用两阶段提交

DTP模型:

AP:应用服务

RM:资源管理器,数据库

TM:事务管理器,负责分配事务的唯一标识,监控事务的执行,并负责事务的提交和回滚

XA协议的痛点,资源在整个事务过程中被锁定,直到事务完成(提交或回滚)。如果一个资源的消息在传送给TM的时候消失了,那么这个资源会被一直锁定,容易发生死锁

XA模式与AT模式的区别

XA模式:依赖于本地数据库事务的锁定和协调,在Prepare阶段,资源管理器会锁定所有需要的资源,直到事务完成,资源锁定时间较长,适用于对一致性要求极高的场景。

资源锁定时间:XA模式中资源在整个分布式事务期间保持锁定;XA模式下第一阶段 是不提交事务的,第二阶段 决定提交或回滚,完成后才会释放锁

AT模式:回滚不依赖于本地事务,本地事务正常提交,但Seata会在本地事务中捕获所有数据变更,并将这些变更记录在undo log中。通过记录undo log来实现数据回滚,只有在提交阶段资源锁定时间短,适用于需要高并发和低延迟的微服务架构。

资源锁定时间:第一阶段完成本地事务,一旦本地事务提交,资源立即解锁,直到第二阶段全局事务管理器(Seata的事务协调器)决定回滚时,才需要根据undo log进行数据恢复,而这一过程并不需要锁定资源。


链接:https://juejin.cn/post/7396930610537103411

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值