首页 > 其他分享 >分布式事务之Seata的AT模型

分布式事务之Seata的AT模型

时间:2024-10-13 23:21:14浏览次数:8  
标签:回滚 Seata 事务 购物车 提交 全局 分支 分布式

在Seata的事务管理中有三个重要的角色:

  • TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。
  • TM (Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。
  • RM (Resource Manager) - 资源管理器:管理分支事务,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
    Seata支持四种不同的分布式事务解决方案:
  • XA
  • TCC
  • AT
  • SAGA
    在这里先简要说一下AT模型
    AT模型是分为两个阶段来工作的,并且该模型保证了事务的最终一致性,但是中间可能会有数据不一致的情况,比如一个交易服务在结算购物车订单时,会将购物车中被结算的商品清空,然后减少被清除的商品的库存,倘若结账时出现错误,并且结账和清空购物车两个接口在不同的事务中,这样就会导致商品未结算,但是实际上购物车中的商品已经被清空了,这样就导致了数据的不一致。
    不过这只是暂时的,因为AT模型的原理是全局事务中有一个事务未提交成功,那么所有的事务都会回滚,并且恢复数据,具体如下:

基本流程图

image

首先该模型开启全局事务
阶段一:所有事务首先向TC注册分支事务,然后执行sql后都会直接提交,并且在undo-log表中存放临时数据,也就是数据快照,以防后面回滚时恢复数据,最后TC报告自己的事务状态。
阶段二:所有事务如果都提交成功,那么所有的分支事务都删除undo-log表中的数据快照,如果有一个及以上的事务提交失败,那么所有已经提交过的事务都回滚,并且恢复数据。

标签:回滚,Seata,事务,购物车,提交,全局,分支,分布式
From: https://www.cnblogs.com/fangbianmian/p/18463226

相关文章

  • Seata的AT模型
    什么是seataSeata(SimpleExtensibleAutonomousTransactionArchitecture)是一个开源的分布式事务解决方案,它主要用于解决微服务架构下分布式事务问题。Seata提供了多种分布式事务解决方案,适用于不同场景,以下是其几种主要的解决方案:1.AT模式(AutomaticTransaction)特点:AT模......
  • 【分布式架构】分布式数据存储
    一、写在前面从这篇文章你可以学习到分布式架构中常见的数据存储架构模式以及Mysql的常见架构模式原创不易,如果对您有帮助麻烦点赞+关注谢谢~二、分布式存储架构模式单体主备主从(读写分离)分区(分库分表)存储架构一般都是上面4个,单体和主备没有讨论的必要,实现比较简单......
  • Seata的AT模式执行流程
    Seata的AT模式是Seata的默认模式。总共分为几步1.登记分支先给每个要参与的服务(分支事务)登记一下,记录下它们是谁,要做什么。2.执行操作每个服务登记好后就开始执行自己的任务,执行前后记下每个服务操作前后的数据状态,以防万一需要回滚。3.检查结果等所有服务都执行完了,TC会......
  • 《深入理解分布式事务与Seata解决方案》
    分布式事务-重要1.数据库的事务1、事务概念事务是一个完整的,不可分割操作单元。整个事务要么全部执行成功,要么全部执行失败。事务具备4个特性:ACIDA:原子性【】C:一致性【数据的一致性:事务开始前和事务结束后,数据总量不变】I:隔离性【事务相互隔离,互不影响】D:持久性【事务一......
  • Seata的AT模式的执行流程
    Seata的AT模式:AT模式是Seata的默认模式,也是一种最终一致的分阶段事务模式,在一阶段,Seata拦截业务SQL,解析SQL语义,找到要更新的业务数据,并保存快照数据和行锁‌。简单来说就是看中结果,结果需要符合业务实际逻辑步骤准备undo-log(数据快照),简单说就是建个数据库用于备份数据,谁需要备份......
  • 简述Seata的AT模型
    AT模式是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。1.Seata的AT模型阶段一RM的工作:●注册分支事务●记录undo-log(数据快照)●执行业务sql并提交●报告事务状态阶段二提交时RM的工作:●删除undo-log即可阶段二回滚时RM的工作:●根据undo-log......
  • Seata的AT模式的执行流程
    AT模式是解决分布式事务的一种方式AT模式与XA模式都是分阶段提交的事务模型,弥补了XA模型中资源锁定周期过长的缺陷,企业基本都用。1.AT模式基本流程图:阶段一RM的工作:注册分支事务记录undo-log(数据快照)执行业务sql并提交报告事务状态阶段二提交时RM的工作:删除undo-log即......
  • 什么是分布式事务?使用Seata有哪些解决方案?Seata的AT模式的执行流程
    什么是分布式事务?简单来说:在分布式系统中出现的事务问题,称为分布式事务。为什么会出现分布式事务:一个分布式事务流程图在这个业务中有3个数据库连接,就没有办法做到全局的事务控制。这就是分布式事务问题分布式事务产生的情况有两种:​ 1.业务跨多个服务实现​ 2.业务跨多......
  • Seata的AT模式的执行流程
    在Seata的事务管理中有三个重要的角色:TC(TransactionCoordinator)-事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM(TransactionManager)-事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM(ResourceManager)-资源管理器:管理......
  • Seata的AT模式的执行流程
    ·TC(TransactionCoordinator)-事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。·TM(TransactionManager)-事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。·RM(ResourceManager)-资源管理器:管理分支事务,与TC交谈以注册分支事务......