网站毕设,Wordpress怎么做导航页,免费开源的建站系统,东莞网站设计出名 乐云践新提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 分布式事务Seata 1.XA模式1.1.两阶段提交1.2.Seata的XA模型1.3.优缺点 AT模式2.1.Seata的AT模型2.2.流程梳理2.3.AT与XA的区别 分布式事务 事务–01—CAP理论… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 分布式事务Seata 1.XA模式1.1.两阶段提交1.2.Seata的XA模型1.3.优缺点 AT模式2.1.Seata的AT模型2.2.流程梳理2.3.AT与XA的区别 分布式事务 事务–01—CAP理论、 BASE 理论 Seata Seata官网 https://seata.io/zh-cn/docs/overview/what-is-seata.html 1.XA模式
Seata支持四种不同的分布式事务解决方案
XATCCATSAGA
1.1.两阶段提交
XA 规范 是 X/Open 组织定义的分布式事务处理DTPDistributed Transaction Processing标准XA 规范 描述了全局的TM与局部的RM之间的接口几乎所有主流的数据库都对 XA 规范 提供了支持。
A是规范目前主流数据库都实现了这种规范实现的原理都是基于两阶段提交。
正常情况 异常情况 一阶段
事务协调者通知每个事务参与者执行本地事务本地事务执行完成后报告事务执行状态给事务协调者此时事务不提交继续持有数据库锁
二阶段
事务协调者基于一阶段的报告来判断下一步操作如果一阶段都成功则通知所有事务参与者提交事务如果一阶段任意一个参与者失败则通知所有事务参与者回滚事务
1.2.Seata的XA模型
Seata对原始的XA模式做了简单的封装和改造以适应自己的事务模型基本架构如图
RM一阶段的工作
注册分支事务到TC执行分支业务sql但不提交报告执行状态到TC
TC二阶段的工作
TC检测各分支事务执行状态如果都成功通知所有RM提交事务如果有失败通知所有RM回滚事务
RM二阶段的工作
接收TC指令提交或回滚事务
1.3.优缺点
XA模式的优点是什么
事务的强一致性满足ACID原则常用数据库都支持实现简单并且没有代码侵入
XA模式的缺点是什么
因为一阶段需要锁定数据库资源等待二阶段结束才释放性能较差依赖关系型数据库实现事务
AT模式
AT模式同样是分阶段提交的事务模型不过缺弥补了XA模型中资源锁定周期过长的缺陷。
2.1.Seata的AT模型
基本流程图 阶段一RM的工作
注册分支事务记录undo-log数据快照执行业务sql并提交报告事务状态
阶段二提交时RM的工作
删除undo-log即可 阶段二回滚时RM的工作根据undo-log恢复数据到更新前
2.2.流程梳理 AT模式下当前分支事务执行流程如下 一阶段
TM发起并注册全局事务到TCTM调用分支事务分支事务准备执行业务SQLRM拦截业务SQL根据where条件查询原始数据形成快照。
{id: 1, money: 100
}RM执行业务SQL提交本地事务释放数据库锁。此时 money 90RM报告本地事务状态给TC
二阶段
TM通知TC事务结束TC检查分支事务状态如果都成功则立即删除快照如果有分支事务失败需要回滚。读取快照数据{“id”: 1, “money”: 100}将快照恢复到数据库。此时数据库再次恢复为100
流程图
2.3.AT与XA的区别
简述AT模式与XA模式最大的区别是什么
XA模式一阶段不提交事务锁定资源AT模式一阶段直接提交不锁定资源。XA模式依赖数据库机制实现回滚AT模式利用数据快照实现数据回滚。XA模式强一致AT模式最终一致
可见AT模式使用起来更加简单无业务侵入性能更好。因此企业90%的分布式事务都可以用AT模式来解决。