Seata分布式事务

1.2.1.1.Seata是什么

​ Seata (Simple Extensible Autonomous Transaction Architecture)是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

官网:Seata/

1.2.2.2.Seata的核心组件

Seata事物管理中有三个重要的核心组件:

  • TC(Transaction Coordinator)-事务协调器:维护分支事务的状态,协调全局事务提交或回滚。

  • TM(Transaction Manager)-事务管理器:定义全局事务的范围,并开始全局事务。

  • RM(Resource Manager)-资源管理器:向TC注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

1.2.2.3.Seata的分布式事务解决方案

Seata提供了四种不同的分布式事务解决方案:

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

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

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

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

当出现异常进行事务回滚的时候如果里面有远程调用方法,通过spring的@Transactional,只能回滚本地方法,所以就要用到@seata中的@GlobalTransactional来实现事务的回滚

pom

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
    <version>2021.0.1.0</version>
</dependency>

yml

seata:
  registry:
    type: nacos #查找TC服务
    nacos:
      server-addr: 111.111.111.111:8848
      group: SEATA_GROUP
      application: pn-mall-seata         #TC服务名
  tx-service-group: pn-mall-seata-group  #事务组名称
  service:
    vgroup-mapping: #事务组与TC cluster的映射关系
      pn-mall-seata-group: default

在方法上加@GlobalTransactional

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值