一、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