SpringCloud Alibaba Seata 工作机制

这篇具有很好参考价值的文章主要介绍了SpringCloud Alibaba Seata 工作机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

😀前言
SpringCloud Alibaba Seata 工作机制

🏠个人主页:尘觉主页
SpringCloud Alibaba Seata 工作机制

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

SpringCloud Alibaba Seata

Seata 工作机制

说明

之所以放在后面说工作机制是因为如果一开始就说的话理解困难

所以我们有了前面的列子和说明我们在结合本节内容会收获的多理解相对容易点

分布式事务过程分析

  1. Seata 分布式事务处理过程-ID+三组件模型

SpringCloud Alibaba Seata 工作机制

SpringCloud Alibaba Seata 工作机制

SpringCloud Alibaba Seata 工作机制

debug

SpringCloud Alibaba Seata 工作机制

梳理: 术语

先说出现了几个术语XID, TC, TM, RM上图展示了一个分布式事务在Seata的处理过程

  1. Transaction ID XID: 全局唯一的事务ID
  2. Transaction Coordinator(TC) : 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚
  3. Transaction Manager™ : 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议;
  4. Resource Manager(RM) : 控制分支事务,负责分支注册,状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚

梳理: 执行过程

  1. TM向TC申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的XID XID在微服务调用链路的上下文中传播;
  2. RM 向TC注册分支事务,将其纳入XID 对应全局事务的管辖
  3. TM 向TC 发起针对XID 的全局提交或回滚决议
  4. TC 调度XID下管辖的全部分支事务完成提交或回滚请求。

Seata 事务模式

  1. 地址: https://seata.io/zh-cn/

SpringCloud Alibaba Seata 工作机制

  1. AT(默认模式)

  2. TCC

  3. SAGA

  4. XA

AT 无侵入模式

文档: https://seata.io/zh-cn/docs/overview/what-is-seata.html

一阶段加载

在一阶段,Seata 会拦截 业务SQL

SpringCloud Alibaba Seata 工作机制

SpringCloud Alibaba Seata 工作机制

  1. 解析SQL 语义,找到"业务SQL"要更新的业务数据,在业务数据被更新前,将其保存成"before image" (前置镜像)
  2. 执行"业务SQL"更新业务数据,在业务数据更新之后, 其保存成"after image"/后置镜像
  3. 最后生成行锁
  4. 以上操作全部在一个数据库事务内完成,这样保证了一阶段操作的原子性
二阶段提交

SpringCloud Alibaba Seata 工作机制

  1. 二阶段如果是顺利提交
  2. 因为"业务SQL"在一阶段已经提交至数据库,所以Seata 框架只需将一阶段保存的快照数据和行锁删掉,完成数据清理即可
二阶段回滚

SpringCloud Alibaba Seata 工作机制

  1. 二阶段如果是回滚的话,Seata 就需要回滚一阶段已经执行的"业务SQL",还原业务数据。
  2. 回滚方式便是用"before image"还原业务数据;但在还原前要首先要校验脏写,对比"数据库当前业务数据"和"after image 如果两份数据完全一致就说明没有脏写,可以还原业务数据
  3. 如果不一致就说明有脏写,出现脏写就需要转人工处理。

AT 事务模式Debug 验证

SEATA 的分布式交易解决方案

SpringCloud Alibaba Seata 工作机制

😄总结

SpringCloud Alibaba Seata 工作机制

😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞文章来源地址https://www.toymoban.com/news/detail-469752.html

到了这里,关于SpringCloud Alibaba Seata 工作机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud Alibaba - Seata 部署 TC 服务,并集成微服务

    目录 一、Seata 架构 1.1、Seata 架构重要角色 1.2、部署 TC 服务 1.2.1、前言 1.2.2、下载 seata-server 包,解压 1.2.3、修改配置 1.2.4、在 nacos 中添加配置 1.2.5、创建数据库表 1.2.6、启动 TC 服务 1.3、微服务集成 Seata 1.3.1、引入依赖 1.3.2、修改配置文件(添加 Seata) Seata 事务管理中,

    2024年02月07日
    浏览(42)
  • SpringCloud Alibaba - Seata 四种分布式事务解决方案(XA、AT)+ 实践部署(上)

    目录 一、Seata 分布式事务解决方案 1.1、XA 模式 1.1.1、XA模式理论 第一阶段: 第二阶段: 1.1.2、Seata 框架中的 XA 模式 第一阶段: 第二阶段: 1.1.3、XA 模式的优缺点 1.2.4、实现Seata 的 XA 模式 a)修改 application 文件(每一个参与事务的微服务) b)给发起全局事务中的入口方法

    2024年04月14日
    浏览(42)
  • 深入学习SpringCloud Alibaba微服务架构,揭秘Nacos、Sentinel、Seata等核心技术,助力构建高效系统!

    链接: https://pan.baidu.com/s/1hRN0R8VFcwjyCTWCEsz-8Q?pwd=j6ej 提取码: j6ej 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 📚【第01阶段】课程简介:全面介绍课程内容,为你提供学习引导和目标规划,让你快速进入学习状态!💡 🔍【第02阶段】基

    2024年02月12日
    浏览(55)
  • 最新版 !快速掌握 JDK17 + springboot3 + springcloud Alibaba : 10、Seata 整合实现分布式事务

    上一节成功启动了seata,传送门: https://blog.csdn.net/qq_16089135/article/details/133989446 1.1 官方文档 中文文档 Seata 是什么 1.2 模式分类 AT :基于支持本地 ACID 事务的关系型数据库。 Java 应用,通过 JDBC 访问数据库。 整体机制:二阶段提交。 一阶段:业务数据和回滚日志记录在同一

    2024年02月06日
    浏览(54)
  • SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务

    Spring Cloud Netflix项目进入维护模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 说明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是维护模式 将模块置于维护模式,意味着 Spring Cloud 团队将不会再向模块添加新功能。我们将修复 block 级别的 bug 以及安全问题,我

    2024年01月19日
    浏览(61)
  • Spring Cloud Alibaba 整合Seata 之概念介绍及Seata-server搭建

    目录 前言 基础介绍 官方文档 模式分类 角色介绍 Seata Server 部署 -  docker-compose  数据库 服务器  nacos配置 docker-compose.yaml 启动 后记 Seata 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题。 主要指讲述

    2024年02月07日
    浏览(82)
  • Spring Cloud Alibaba全家桶(九)——分布式事务组件Seata

    本文小新为大家带来 分布式事务组件Seata 相关知识,具体内容包括 分布式事务简介 (包括: 事务简介 , 本地事务 , 分布式事务典型场景 , 分布式事务理论基础 , 分布式事务解决方案 ), 分布式事务Seata使用 (包括: Seata是什么 , Seata的三大角色 , Seata的设计思路

    2024年02月03日
    浏览(62)
  • 【Spring Cloud】Spring Cloud Alibaba-- 分布式事务Seata原理

    Seata 是一款开源的分布式事务解决方案,致力于提供高性能与简单易用的分布式事务服务,为用户提供了 AT、TCC、SAGA 和 XA 几种不同的事务模式: AT模式:无侵入式的分布式事务解决方案,适合不希望对业务进行改造的场景,但由于需要添加全局事务锁,对影响高并发系统的

    2024年02月08日
    浏览(78)
  • 【Spring Cloud Alibaba Seata 处理分布式事务】——每天一点小知识

                                                                                   💧 S p r i n g C l o u d A l i b a b a S e a t a 处理分布式事务 color{#FF1493}{Spring Cloud Alibaba Seata 处理分布式事务} Sp r in g Cl o u d A l ibaba S e a t a 处理分布式事务 💧

    2024年02月12日
    浏览(41)
  • SpringCloud集成Seata saga模式案例

    2023年04月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包