Springcloud---B站学习总结---Springcloud Alibaba---seata处理分布式事务简介

Springcloud—B站学习总结—Springcloud Alibaba—seata处理分布式事务

分布式事物问题

在这里插入图片描述

分布式事物问题一句话总结

在这里插入图片描述
==目的:==为了解决全局数据的一致性问题的保证

Seata介绍(是什么):

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

Seata可以做什么:

  1. 一个典型的分布式事务过程包含
    1. 分布式事务处理过程的一ID+三组件模型
      1. Transaction ID XID:全局唯一的事务ID
      2. 三组件 概念:
        1. Transaction Coordinator(TC):事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。
        2. Transaction Manager ( TM) :事务管理器定义全局事务的范围:开始全局事务、提交或回滚全局事务。
        3. Resource Manager(RM):资源管理器管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

Seata分布式处理事务的过程

图解

在这里插入图片描述

过程详解

在这里插入图片描述

发布说明/下载地址:https://github.com/seata/seata/releases

怎么使用(在业务逻辑上添加注解)

  1. @Transcational:本地
  2. @GlobalTranscational:全局(Seata的分布式交易解决方案)

seata的分布式交易解决方案

在这里插入图片描述

Seata的下载和安装

  1. 下载完毕后修改conf目录下的file.conf配置文件
    1. 先备份原始的配置文件file.conf
    2. 主要修改:自定义事务组名称+事务日志存储模式为db+数据库连接信息
    3. file.conf配置文件打开之后需要修改service模块和store模块(mySeata-1.1.0/script/client/conf配置文件路径)

1.修改配置文件service模块(微服务的服务)

vgroupMapping.my_test_tx_group = "default"变成vgroupMapping.my_test_tx_group = "fsp_tx_group"(这个是指定事务分组的配置语句)

2.修改配置文件store模块(事务存储模块)

mode = "file"改成 mode = "db"
还要修改db模块把其中的
user = "mysql" password = "mysql"改成 user = "root" password = "admin123"

3.数据库建表(1.0后版本在目录:/Users/apple/mySeata-1.1.0/script/server/db)

在这里插入图片描述

4.找到registry.conf配置文件,修改配置

在这里插入图片描述

目的是:指明注册中心为Nacos,及修改Nacos连接信息

5.启动Nacos(localhost:8848)

6.本地启动seata-server(默认端口8091)

./seata-server.sh -p 8091 -h 127.0.0.1 -m db -n 1
看到红圈就说明启动成功了
在这里插入图片描述

目前理解seata就是分布式事务的服务器

7.seata练习—业务数据库准备

业务说明:下订单—>减库存—>减账户余额

在这里插入图片描述

创建业务练习数据库在这里插入图片描述

创建业务练习数据库对应的表

在这里插入图片描述

创建业务练习数据库对应的回滚日志表(写的时候版本用的1.0.0)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值