十七、SpringCloud Alibaba Seata
一、Seata介绍
①微服务应用面临的问题
单体应用被拆分成微服务应用后,原本的各个模块变成了独立的应用,分别使用不同的数据源。当业务操作调用多个不同的微服务时,此时每个服务内部的数据一致性由本地事务来保证,但是全局数据一致性问题没法保证,这就是我们需要面临的分布式事务问题。
②Seata概念介绍
名称 | 介绍 |
---|---|
Transaction ID | 全局唯一的事务ID |
TC | 事务协调者,维护全局和分支事务的状态,驱动全局事务提交或回滚。 |
TM | 事务管理器,定义全局的事务范围:开启全局事务、提交或回滚全局事务。 |
RM | 资源管理器,管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务的提交或回滚。 |
③Seata简介
Seata
是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。Seata
将为用户提供了AT
、TCC
、SAGA
和 XA
事务模式,为用户打造一站式的分布式解决方案。
④Seata分布式事务处理过程
-
TM
向TC
申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的XID。 - XID在微服务调用链路的上下文中传播。
-
RM
向TC注册分支事务,将其纳入XID
对应全局事务的管辖。 -
TM
向TC
发起针对XID
的全局提交或回滚决议。 -
TC
调度XID
下管辖的全部分支事务完成提交或回滚请求。
二、Seata Server安装
①下载seata-server-1.1.0