分布式事务Seata使用及其原理剖析

1.Seata是什么Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(GlobalTransactionService全局事务服务)官网:https://seata.io/zh-cn/index.html源码:https://github.com/seata/seata官方Demo:https://github.com/seata/seata-samplesseata版本:v1.4.01.1Seata的三大角色在Seata的架构中,一共有三个角色:TC(TransactionCoordinator)-事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。TM(TransactionManager)-事务管理器定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM(ResourceManager)-资源管理器管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。其中,TC为单独部署的Server服务端,TM和RM为嵌入到应用中的Client客户端

分布式事务Seata使用及其原理剖析主讲老师:Fox1.Seata是什么Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS(GlobalTransactionService全局事务服务)官网:https://seata.io/zh-cn/index.html源码:https://github.com/seata/seata官方Demo:https://github.com/seata/seata-samplesseata版本:v1.4.01.1Seata的三大角色在Seata的架构中,一共有三个角色:TC(TransactionCoordinator)-事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。TM(TransactionManager)-事务管理器定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM(ResourceManager)-资源管理器管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。其中,TC为单独部署的Server服务端,TM和RM为嵌入到应用中的Client客户端。在Seata中,一个分布式事务的生命周期如下:1.TM请求TC开启一个全局事务。TC会生成一个XID作为该全局事务的编号。XID,会在微服务的调用链路中传播,保证将多个微服务的子事务关联在一起。2.RM请求TC将本地事务注册为全局事务的分支事务,通过全局事务的XID进行关联。3.TM请求TC告诉XID对应的全局事务是进行提交还是回滚。4.TC驱动RM们将XID对应的自己的本地事务进行提交还是回滚。1.2设计思路AT模式的核心是对业务无侵入,是一种改进后的两阶段提交,其设计思路如图第一阶段业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。核心在于对业务sql进行解析,转换成undolog,并同时入库,这是怎么做的呢?先抛出一个概念DataSourceProxy代理数据源,通过名字大家大概也能基本猜到是什么个操作,后面做具体分析参考官方文档:https://seata.io/zh-cn/docs/dev/mode/at-mode.html

分布式事务Seata使用及其原理剖析_第1张图片
分布式事务Seata使用及其原理剖析_第2张图片
分布式事务Seata使用及其原理剖析_第3张图片

你可能感兴趣的:(Java研究,微服务专题研究,分布式,java,开发语言)