目录

前言:

什么是seata

 在Seata框架中有三个典型的角色:

典型的Seata管理分布式事务的生命周期

 seata的下载及安装

1.首先找到下载位置https://github.com/seata/seata/releases,选择你要下载的版本,到版本号的下面找到Assets,点击直接下载

2.seata文件的修改

seata-server-1.8.0.zip解压都指定的目录并修改conf目录下的file.conf配置文件。

修改seata-server-1.8.0\seata\conf目录下的registry.conf(注册配置文件)配置文件。

 3.在mysql5.7.24中建数据库seata,在seata库里创建表,创建表的sql不用自己写。

 4.先启动nacos端口8848

​5.再启动seata-server。

6.Seata启动成功的标志:已经装载注册进nacos。​

 seata启动能否成功的问题


前言:

单体应用被拆分成微服务应用,原来的模块被拆分成独立的应用,分别使用独立的数据源,业务操作需要调用多个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证,一次业务操作需要跨多个数据源或跨多个系统进行远程调用,就会产生分布式事务的问题。我们将使用seata来解决

什么是seata

Seata 是一款开源的分布式事务的解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
Seata 的官网地址:http://seata.io/zh-cn/

 在Seata框架中有三个典型的角色

  1. TC(Transaction Coordinator) -- 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚。
  2. TM(Transaction Manager) -- 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议。
  3. RM(Resource Manager) -- 控制分支事务,负责分支注册,状态汇报,并接受事务协调器的指令,驱动分支(本地)事务的提交和回滚

 

典型的Seata管理分布式事务的生命周期

       (XID (Transaction ID) (解释:全局唯一的事务ID)

  1. TMTC申请开启一个全局事务,全局事务创建成功并性成一个全局唯一的ID:
  2. XID在微服务调用链路的上下文中传播:
  3. RMTC注册分支事务,将其纳入XID对应全局事务的管辖:
  4. TMTC发起针对ID的全局提交或回滚决议:
  5. TC调度XID下管辖的全部分支事务完成提交或回滚请求。

 seata的下载及安装

1.首先找到下载位置https://github.com/seata/seata/releases,选择你要下载的版本,到版本号的下面找到Assets,点击直接下载

2.seata文件的修改

seata-server-1.8.0.zip解压都指定的目录并修改conf目录下的file.conf配置文件。
1 、先备份原始 file.conf 文件 , 可以更名为 file 出厂默认 .conf,避免修改遗失
2 、主要修改:自定义事务组的名称 + 事务日志存储模式为 db+ 数据库的连接信息
3 file.conf 主要修改的模块为两个
3.1 service 模块 :
第31 行: vgroup_mapping.my_test_tx_group = "default"
更改为 vgroup_mapping.my_test_tx_group = "fsp_tx_group"
注意: fsp 是随意起的名字,可以自定义。
3.2 store 模块 :
57 行: mode = "file" 更改为 mode = "db"
第82 行:要将数据库信息更改成自己的。

 

 

修改seata-server-1.8.0\seata\conf目录下的registry.conf(注册配置文件)配置文件。
1、先备份 registry.conf 副本,名为 registry 出厂默认 .conf
2 、第三行:将 type = "file" 更改成 type = "nacos" // 指名注册中心为 nacos
3 、第六行:将 serverAddr = "localhost" 更改为 serverAddr = "localhost:8848" // 更改 nacos 的连接信息

 3.在mysql5.7.24中建数据库seata,seata库里创建表,创建表的sql不用自己写。

db_store.sqlseata-server-1.8.0\seata\conf目录里面--db_store.sql,直接拷贝粘贴就好。拷贝粘贴sql后在seata库注解运行,运行成功后会生成3张表:branch_table(分支表),global_table(全局表),lock_table(锁表)。

 4.先启动nacos端口8848

 5.再启动seata-server

启动 seata 的两种方式:
方式一:直接来到 seata bin 目录下双击 seata-server.bat
方式二:来到 bin 目录下,在命令行上 cmd, 然后 seata-server.bat --> 回车,使用命令行进行启动。

6.Seata启动成功的标志:已经装载注册进nacos

 seata启动能否成功的问题

seata低版本0.9.0配置连接mysql8.0版本:解决

 这个是转载:Seata0.9.0大坑之连接MySQL8.0_seata-server0.9.0配置连接mysql8.0_月落呜啼霜满天天天的博客-CSDN博客

剩下的问题大部分都是数据库配置连接没有写成自己的,没有进行修改

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐