【微服务】【Seata】 第1章----seata介绍
·
什么是分布式事务?
没有拆分服务之前,是在一个数据库里的,所以可以控制事务的一致性。
【仓储服务:对给定的商品扣除仓储数量。】
【订单服务:根据采购需求创建订单。】
【帐户服务:从用户帐户中扣除余额。】
拆分服务之后,分别要在多个数据库上操作,并保证一致性。

Seata是什么?
Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,官网地址http://seata.io/zh-cn/
一个典型的分布式事务过程 Transaction ID XID 全局唯一的事务ID(分布式事务处理过程的-ID+三组件模型)
3个组件概念
Transaction Coordinator(TC) 事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交或回滚;
Transaction Manager™ 控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议;
Resource Manager(RM) 控制分支事务,负责分支注册,状态汇报,并接收事务协调器的指令,驱动分支(本地)事务的提交和回滚;
流程:
1.TM 向 TC 申请开启一个全局事务,全局事务创建成功并生成一个全局唯一的 XID;XID 在微服务调用链路的上下文中传播;
2.RM 向 TC 注册分支事务,将其纳入 XID 对应全局事务的管辖;
3.TM 向 TC 发起针对 XID 的全局提交或回滚决议;
4.TC 调度 XID 下管辖的全部分支事务完成提交或回滚请求。
发起者用全局事务 @GlobalTransactional,参与者用Spring 本地事务 @Transactional

更多推荐



所有评论(0)