17zwd一起做网站普宁,深圳三合一建设网站,女的做公关到底是干嘛的,网站建设与管理培训活动总结解决分布式事务的方案有很多#xff0c;但实现起来都比较复杂#xff0c;因此我们一般会使用开源的框架来解决分布式事务问题。
在众多的开源分布式事务框架中#xff0c;功能最完善、使用最多的就是阿里巴巴在2019年开源的Seata了。
1. 初识Seata
Seata是 2019 年 1 月…解决分布式事务的方案有很多但实现起来都比较复杂因此我们一般会使用开源的框架来解决分布式事务问题。
在众多的开源分布式事务框架中功能最完善、使用最多的就是阿里巴巴在2019年开源的Seata了。
1. 初识Seata
Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
Seata 可能给是目前已知最可靠的分布式事务解决方案。
官网地址Seata | Seata其中的文档、播客中提供了大量的使用说明、源码分析。 2. Seata的架构
其实分布式事务产生的一个重要原因就是参与事务的多个分支事务互相无感知不知道彼此的执行状态因此解决分布式事务的思想非常简单
就是找一个统一的事务协调者与多个分支事务通信检测每个分支事务的执行状态保证全局事务下的每一个分支事务同时成功或失败接口大多数的分布式事务框架都是基于这个理论来实现的。
Seata也不例外在Seata的事务管理中有三个重要的角色 TCTransaction Coordinator- 事务协调者维护全局和分支事务的状态协调驱动全局事务提交或回滚。TMTransaction Manager- 事务管理器定义全局事务的范围、开始全局事务、提交或回滚全局事务。RMResource Manager- 资源管理器管理分支事务处理的资源与TC交谈以注册分支事务和报告分支事务的状态并驱动分支事务提交或回滚。
其中TC 为单独部署的 Server 服务端TM 和 RM 为嵌入到应用中的 Client 客户端。
在 Seata 中一个分布式事务的生命周期如下 作为一个分布式事务它肯定也会有一个入口方法在这个入口方法当中一定会去调用多个其它的微服务每调一个微服务这个微服务不就是一个分支事务因此将来调了多少个微服务将来我们这个全局事务就包含多少个分支事务因此在这个入口方法里就定义了全局事务的范围了而TM就会去监控这个入口的方法或者说是代理这个入口方法这样一来TM就知道了全局事务里面总共有多少个分支事务整个范围就确定下来了当入口方法被执行时TM会首先拦截当前的这个执行会去向TC发起一个请求去注册全局事务接下来就可以去执行这个入口的业务逻辑了去调用每一个微服务到了微服务里面每个分支事务就要开始执行了