首页 > 其他分享 >seata事务管理

seata事务管理

时间:2023-10-10 21:44:33浏览次数:30  
标签:事务管理 回滚 seata XA 事务 模式 提交 全局

seata事务管理中三个重要角色:

TC事务协调者,维护全局和分支事务的状态,协调全局事务的提交与回滚

TM事务管理者,定义全局事务的范围,全局事务的开始,事务的提交与回滚

RM资源管理者,管理分支事务处理的资源,和TC交谈以注册分支事务,报告分支事务状态,并驱动事务的提交和回滚

 

Seata基于上述架构提供了四种不同的分布式事务解决方案:

  • XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入

  • TCC模式:最终一致的分阶段事务模式,有业务侵入

  • AT模式:最终一致的分阶段事务模式,无业务侵入,也是Seata的默认模式

  • SAGA模式:长事务模式,有业务侵入

无论哪种方案,都离不开TC,也就是事务的协调者。

 

简述AT模式与XA模式最大的区别是什么?

  • XA模式一阶段不提交事务,锁定资源;AT模式一阶段直接提交,不锁定资源。

  • XA模式依赖数据库机制实现回滚;AT模式利用数据快照实现数据回滚。

  • XA模式强一致;AT模式最终一致

AT模式的优点:

  • 一阶段完成直接提交事务,释放数据库资源,性能比较好

  • 利用全局锁实现读写隔离

  • 没有代码侵入,框架自动完成回滚和提交

AT模式的缺点:

  • 两阶段之间属于软状态,属于最终一致

  • 框架的快照功能会影响性能,但比XA模式要好很多

标签:事务管理,回滚,seata,XA,事务,模式,提交,全局
From: https://www.cnblogs.com/gaojinhang/p/17755828.html

相关文章

  • Spring事务管理
    Spring事务管理1Spring事务简介【重点】1.1Spring事务作用事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败1.2案例分析Spring事务需求:实现任意两个账户间转账操作需求微缩:A账户减钱,B账户加钱分析:①:数据......
  • Spring事务管理
    Spring事务管理1Spring事务简介【重点】1.1Spring事务作用事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败1.2案例分析Spring事务需求:实现任意两个账户间转账操作需求微缩:A账户减钱,B账户加钱分析:①:数据......
  • 分布式事务 —— SpringCloud Alibaba Seata
    Seata简介传统的单体应用中,业务操作使用同一条连接操作不同的数据表,一旦出现异常就可以整体回滚。随着公司的快速发展、业务需求的变化,单体应用被拆分成微服务应用,原来的单体应用被拆分成多个独立的微服务,分别使用独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部......
  • Seata XA模式一阶段为什么一直锁定资源等二阶段成功?AT模式怎么解决的这个缺陷?
    Winwin:SeataXA模式一阶段为什么一直锁定资源等二阶段成功?AT模式怎么解决的这个缺陷?兔子:Seata是一个非常强大的分布式事务解决方案,它提供了XA模式和AT模式来支持分布式事务的一致性和可靠性。关于你的问题,我们先来聊一下SeataXA模式的一阶段和二阶段,好吗?在SeataXA模式的一......
  • Seata架构实现分布式事务
    Seata架构官网地址:http://seata.io/zh-cn/Seata架构实现模型 TC(TransactionCoordinator):事务协调者:维护全局和分支事务的状态,协调全局事务提交或回滚。监控和通知各个事务,包括分支事务和全局事务。TM(TransactionManager):事务管理器:定义全局事务的范围、开始全局事务、......
  • 分布式事务解决方案-Seata01
    分布式事务-使用Seata传统数据库事务A-原子性:①事务中的所有操作,要么全部成功,要么全部失败。②影响事务的操作,一般指的是增删改,也就是一个事务中,有多个增删改的SQLC-一致性:①事务开始前到事务结束后,数据状态需要一致②例如:转账增减金额和支付减去金额+修改订单状态、减库存I-......
  • Seata+naocs 使用
    1.环境seata1.5.2.  nacos2.1.0本地配置好nacos之后 新建一个seata的命名空间,seata需要使用  seata准备1:创建mysql的seata数据库 执行\seata-server-1.5.2\script\server\db\mysql.sql2:拷贝config.txt  从seata-server-1.5.2\script\config-center\confi......
  • 基于 COLA 架构的 Spring Cloud Alibaba(五)整合 Seata
    我们在使用微服务架构的时候,难免会遇到跨服务操作数据库的情形。例如,创建订单的业务,我们需要在订单服务生成订单数据,同时要在商品服务进行库存扣减。此时的操作涉及到订单、商品两个服务的数据操作,如何保证同时成功或同时失败呢?对此,本篇将介绍使用Seata来解决此问题。1.关于Sea......
  • SpringCloudAlibaba整合Seata
    Seata(全称为SimpleExtensibleAutonomousTransactionArchitecture)是一个开源的分布式事务解决方案,用于解决分布式系统中的事务一致性问题。在分布式系统中,由于各个服务可能分布在不同的服务器上,涉及的数据库也可能不同,因此需要一种机制来保证分布式事务的原子性、一致性、隔离......
  • Seata➕Nacos配置
    Seata➕Nacos配置前言在分布式系统中,事务管理是一个非常重要的问题。Seata是一款轻量级的分布式事务解决方案,它基于阿里巴巴的DubboRPC框架,并且可以与SpringCloud集成。本文将介绍如何在SpringCloudAlibaba中使用Seata,包括Seata的架构、配置以及使用方法。准备工作在开始配......