Cloud Alibaba Seata 处理分布式事务介绍和安装

本文详细介绍了Seata作为一款高性能的分布式事务解决方案,在微服务架构下如何保证全局数据的一致性。包括Seata的基本概念、核心组件、启动教程、代码使用示例及原理介绍等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、分布式事务问题

单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据致性问题没法保证。
在这里插入图片描述
总结:一次业务操作需要跨多个数据源或需要跨多个系统进行远程调用,就会产生分布式事务问题。而 Alibaba Seata 就是用来保证全局数据一致性问题的。

2、Seata 简介

2.1 Seata 能干嘛

Alibaba Seata 是用来保证全局数据一致性问题的。 它由 1 + 3 的模型组成。即全局唯一的事务 ID + 下面三个组件。

  • TC(Transaction Coordinator)
  • TM(Transaction Manager)
  • RM(Resource Manager)

在这里插入图片描述

2.2 Seata 是什么

Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。

Seata 官网地址

2.3 Seata 处理分布式事务的过程

在这里插入图片描述
在这里插入图片描述

3、Seata 搭配 MySQL8 启动运行教程(Seata 默认不支持 MySQL8)

4、Seata 使用代码

4.1 导入 seata 依赖

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

4.2 直接在方法头上添加全局事务注解即可。

类似于 Spring 处理本地事务的注解 @Transactional。Seata 处理全局事务的注解为 @GlobalTransactional

5、Seata 原理介绍

5.1 Seata 三大组件

在这里插入图片描述

TC:Seata 服务器

TM:事务的发起方,即头上标有 @GlobalTransactional 注解的方法

RM:事务的参与方,可以近似的理解为数据库

5.2 Seata 的分布式事务执行流程

在这里插入图片描述

5.3 Seata 事务类型-默认的 AT 模式

AT 模式的整体机制
两阶段提交协议的演变:

  • 一阶段:业务数据和回滚日志记录在同-个本地事务中提交,释放本地锁和连接资源。
  • 二阶段:
    。提交异步化,非常快速地完成。
    。回滚通过一阶段的回滚日志进行反向补偿。

1. 一阶段加载

在这里插入图片描述
在这里插入图片描述

2. 二阶段提交

在这里插入图片描述

3. 二阶段回滚

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值