美文网首页
seata的原理

seata的原理

作者: hangjun | 来源:发表于2022-02-20 13:17 被阅读0次

整体机制
两阶段提交协议的演变:

一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段:提交异步化,非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿。

AT模式
一阶段:
1.tm开启一个全局事务,seata服务器返回xid
2.执行第一个本地事务(2.1前置镜像 2.2执行sql 2.3后置镜像),注册分支事务
3.feign调用第二个本地事务(3.1前置镜像 3.2执行sql 3.3后置镜像),注册分支事务

二阶段:
1.没有异常的情况,tm全局提交到tc,tc删除全局事务、分支事务
2.有异常的情况下,tm全局提交到tc,tc删除全局事务、分支事务,通知各个rm进行回滚操作

代码层面:
1.@SeataAutoConfiguration 和@GlobalTransitionAutoConfiguration
会注册一个BeanPostProcessor,名字是:GlobalTransactionScanner。
2.GlobalTransactionScanner.afterProperties()会初始化rm,tm,异步开启注册请求、重试请求、接受数据的线程池
3.GlobalTransactionScanner.wrapIfxxx()方法在生成动态代理对象的的时候会增加一个GlobalTransactionInterceptor.
这个类内部调用一个TransactionTemplate的模板类,模板类提供创建全局事务、创建分支事务、执行业务逻辑处理、提交、回滚

前置镜像和后置镜像还有注册分支事务都是通过代理datasource得到一个datasourceProxy里面处理的。

相关文章

  • seata原理

    1、Seata和LCN的区别 1. 基本实现思路是一样的,唯一区别在于回滚方式,LCN采用代理数据源假关闭连接,暂...

  • seata的原理

    整体机制两阶段提交协议的演变: 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。二阶段...

  • Seata AT 模式启动源码分析

    从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 A...

  • 一文简要概述Seata AT与TCC的区别

    AT与TCC的比较 首先,先了解一下Seata分布式事务的工作原理(见下图) 我们可以将Seata分布式事务的参与...

  • Seata实现原理

    相关概念:Transaction Coordinator (TC): 事务协调器,维护全局事务的运行状态,负责协调...

  • 分布式事务seata 原理分析及源码解读

    seata原理 seata的设计思路可以理解为分治思想,将整个分布式事务分到每个微服务自身去治理。整个请求在每个微...

  • 67.Seata案例-seata使用

    启动Seata 下载seata 下载地址: https://github.com/seata/seata/rele...

  • Seata in AT mode的工作原理

    Seata为用户提供了AT、TCC、SAGA和XA事务模式。其中AT模式是seata主推的事务模式,使用AT有一个...

  • 分布式事务LCN与Seata原理

    LCN和Seata原理图 LCN:不生产事务,只是事务的协调者 LCN 核心采用3PC原理:1.发起方(如支付...

  • Seata之原理简介

    分布式事务的执行流程 TM开启分布式事务(TM向TC注册全局事务记录) 换业务场景,编排数据库,服务等事务内资源(...

网友评论

      本文标题:seata的原理

      本文链接:https://www.haomeiwen.com/subject/tgqplrtx.html