首页 > 其他分享 >什么是分布式事务?使用Seata有哪些解决方案?Seata的AT模式的执行流程

什么是分布式事务?使用Seata有哪些解决方案?Seata的AT模式的执行流程

时间:2024-10-13 21:11:04浏览次数:8  
标签:事务 Seata 解决方案 提交 分布式 TC 分支

什么是分布式事务?

简单来说:在分布式系统中出现的事务问题,称为分布式事务。

为什么会出现分布式事务:

一个分布式事务流程图

在这个业务中有3个数据库连接,就没有办法做到全局的事务控制。这就是分布式事务问题

分布式事务产生的情况有两种:

​ 1. 业务跨多个服务实现

​ 2. 业务跨多个数据源实现

可以使用Seata解决分布式事务问题:

  • 分布式事务问题的方案有以下几种

    AT 模式:这是一种自动化的两阶段提交协议的变种。在该模式下,Seata 能够自动地将业务操作转换为符合 两阶段提交协议的操作。在业务提交之前,会将业务数据修改的快照保存到 Seata 的存储中。如果全局事务协调器决定提交,则应用变更;如果决定回滚,则根据快照恢复原状。

    XA 模式:XA 协议是一种传统的两阶段提交协议,它要求资源管理器(如数据库)支持 XA 接口。然而,Seata 主要关注的是非 XA 资源的分布式事务管理,因此对于支持 XA 协议的资源,通常直接使用标准的 XA 事务处理机制,而不是通过 Seata 处理。

    TCC 模式:

    Saga 模式:

Seata的AT模式的执行流程:

AT模式流程图:

  • TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。
  • TM (Transaction Manager) - 事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。
  • RM (Resource Manager) - 资源管理器:管理分支事务,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

流程说明:

一阶段:

1 TC架设

1.1 TM通知TC开启全局事务

1.2 TM调用分支事务

分支事务发生的变化:

1.3 注册分支事务到TC

1.4 执行完成sql之后并提交,在sql提交前后会把数据记录到一个快照表中,这个表就是undo_log表。
    这个时候数据库中的数据就是已经更新过的了

1.5 分支事务报告事务的状态

二阶段:

2.1 TM通知TC 提交或回滚全局事务

2.2 TC检查分支事务的状态

2.3 分支事务成功:
  2.4 提交,删除undo_log表中的记录
2.3 分支事务失败:
  2.4 回滚,根据undo-log恢复数据到更新之前,并删除undo_log表中的记录

注意:

  • 如果有多分支事务,某个分支事务执行成功,提交后的数据,就是一个中间状态

  • AT模式是最终一致性的解决方案,所有会有中间状态不一致的情况

优点:

  • AT模式使用起来更加简单,无业务侵入,性能更好。

  • 因此企业90%的分布式事务都可以用AT模式来解决。

标签:事务,Seata,解决方案,提交,分布式,TC,分支
From: https://www.cnblogs.com/chengzhenghai/p/18462982

相关文章

  • Seata的AT模式的执行流程
    在Seata的事务管理中有三个重要的角色:TC(TransactionCoordinator)-事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。TM(TransactionManager)-事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。RM(ResourceManager)-资源管理器:管理......
  • Seata的AT模式的执行流程
    ·TC(TransactionCoordinator)-事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。·TM(TransactionManager)-事务管理器:定义全局事务的范围、开始全局事务、提交或回滚全局事务。·RM(ResourceManager)-资源管理器:管理分支事务,与TC交谈以注册分支事务......
  • Seata的AT模式的执行流程
    Seata角色术语TC-事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚,即Seata服务端。TM-事务管理器定义全局事务的范围:开始全局事务、提交或回滚全局事务,在事务发起的客户端。RM-资源管理器管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态......
  • 项目解决方案:连锁店视频监控接入汇聚联网解决方案
     目录一.项目背景二.建设目标和详细需求分析2.1建设总目标2.2需求分析三.系统特色3.1数字,高清,网络化系统3.2安全性3.3可拓展性3.4资源利旧,节约成本四.系统实现4.1系统方案设计4.2拓扑组网说明4.3用户权限管理实现五.系统功能介绍5.1认证和登录功能5.1.1认证功......
  • seata 模式相关
    Seata解决分布式的方案1AT模式数据最终一致AT模式使用起来更加简单,无业务侵入,性能更好AT模式是Seata创新的一种非侵入式的分布式事务解决方案,Seata在内部做了对数据库操作的代理层,我们使用SeataAT模式时,实际上用的是Seata自带的数据源代理DataSourceProxy,Seata在......
  • RMI分布式通信及其应用
    分布式系统实验一RMI分布式通信及其应用实验名称:RMI分布式通信及其应用实验要求:利用RMI通讯机制,完成一个分布式通讯应用。实验学时:2学时。实验内容:设计一个基于JavaRMI通讯机制的在线拍卖系统。系统客户端(买家)通过服务器(拍卖中心)出价竞拍商品,实现客户端和服务器之间的交互......
  • 【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
    ......
  • 【孤岛划分】分布式能源接入弹性配电网模型研究【IEEE33节点】(Matlab代码实现)
      目录......
  • Redisson分布式锁
    目录一、SETNX+EXPIRERedis分布式锁误删问题业务阻塞造成锁超时释放问题二、SETNX+LUA脚本Lua脚本解决多条命令原子性问题利用Java代码调用Lua脚本改造分布式锁 锁无法续期问题三、Redisson分布式锁 背景和定义使用方式Redisson的大致流程Redisson的可重入原理......
  • 【孤岛划分】分布式能源接入弹性配电网模型研究【IEEE33节点】(Matlab代码实现)
     目录......