Springcloud—B站学习总结—Springcloud Alibaba—seata处理分布式事务
分布式事物问题
分布式事物问题一句话总结
==目的:==为了解决全局数据的一致性问题的保证
Seata介绍(是什么):
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
Seata可以做什么:
- 一个典型的分布式事务过程包含
- 分布式事务处理过程的一ID+三组件模型
- Transaction ID XID:全局唯一的事务ID
- 三组件 概念:
1. Transaction Coordinator(TC):事务协调者
维护全局和分支事务的状态,驱动全局事务提交或回滚。
2. Transaction Manager ( TM) :事务管理器
定义全局事务的范围:开始全局事务、提交或回滚全局事务。
3. Resource Manager(RM):资源管理器
管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
- 分布式事务处理过程的一ID+三组件模型
Seata分布式处理事务的过程
图解
过程详解
发布说明/下载地址:https://github.com/seata/seata/releases
怎么使用(在业务逻辑上添加注解)
- @Transcational:本地
- @GlobalTranscational:全局
(Seata的分布式交易解决方案)
seata的分布式交易解决方案
Seata的下载和安装
- 下载完毕后修改conf目录下的
file.conf
配置文件- 先备份原始的配置文件
file.conf
- 主要修改:自定义事务组名称+事务日志存储模式为db+数据库连接信息
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
看到红圈就说明启动成功了