-
Seata是什么
Simple Extensible Autonomous Transaction Architecture 简单可扩展自治事务框架
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务. -
一个典型的分布式事务的一ID+三组件模型
XID(Transaction ID): 全局唯一的事务ID.只要在同一ID下,不管使用到几个数据库,都是一体的.
TC(Transaction Coordinator): 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚.
TM(Transaction Manager): 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议.
RM(Resource Manager): 控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚.
注: TC可以理解成seata服务器,TM可以理解成事务发起方,标有@GlobalTransactional注解,RM可以理解成事务参与方. -
一个典型的分布式事务处理过程
- TM向TC申请一个全局事务,全局事务创建成功并生成一个全局唯一的XID;
- XID在微服务调用链路的上下文中传播;
- RM向TC注册分支事务,将其纳入XID对应全局事务的管辖;
- TM向TC发起针对XID的全局提交或回滚协议;
- TC调度XID下管辖的全部分支事务完成提交或回滚请求.
- seata的安装配置
- 从seata.io官网下载
- 进入conf配置文件中先备份file.conf文件,然后修改file.conf文件: 自定义事务组名称、事务日志存储模式为db、数据库连接信息
- 创建seata数据库, 执行conf目录中的db_store.sql文件,生成三张数据表
- 备份并修改conf目录下的registry.conf配置文件
- 启动nacos,nacos启动成功后在seata文件夹下的bin文件夹中执行bash seata-server.sh启动seata,看到如下语句说明启动成功