Seata前置
-
分布式之前,单机单库没有下面这些问题;
单体引用被拆分成微服务应用,原来的三个模块,被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部数据的一致性由本地事务来保证,但是全局的数据一致性问题没法保证。
-
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。官网地址:http://seata.io/zh-cn/
-
能干嘛:一个典型的分布式事务过程:
-
分布式事务处理过程的一致性ID,以及三个组件模块:
- Transaction ID XID,全局唯一的事务;
- 三组件:
- Transaction Coordinator(TC):事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交和回滚;
- Transaction Manager(TM):控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局归滚协议;
- Resource Manager(RM):控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交等;
-
第一步:TM向TC申请开启一个全局事务,全局事务创建成功,并生成一个全局唯一的XID;
-
第二步:XID在微服务调用链路的上下文中传播;
-
第三步:RM向TC注册分支事务,将其纳入XID对应全局事务的管辖中;
-
第四步:TM向TC发起针对XID的全局提交或回滚决议;
-
第五步:TC调度XID下管辖的全部分支事务,完成提交或回滚请求;
-
版本说明
-
Seata 0.9.0
-
下载地址:https://github.com/seata/seata/releases
-
具体步骤:
-
解压seata-server-0.9.0.zip解压到指定目录,并修改conf目录下的file.conf配置文件:
- 先备份原始file.conf文件;
- 修改:自定义事务组名称+事
-