美文网首页RxJava编程语言爱好者Java服务器端编程
Seata原理实现/执行流程/生命周期

Seata原理实现/执行流程/生命周期

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-10-03 06:58 被阅读0次

上一篇 <<<Seata-框架介绍
下一篇 >>>Seata-TM执行时突然宕机了会造成什么问题


实现原理图

文字说明

a.发起方(TM)和我们的参与方(RM)项目启动之后和协调者TC保持长连接;
b.发起方(TM)会向我们的TC协调者申请一个全局的事务id,保存到threadlocal中;
c.TM和RM都会被Seata代理数据源,在原生的sql之前和之后保存原来和修改后日志到undo_log中,方便后期实现回滚。
d.TM使用feign客户端调用接口的时候,重写feign客户端,在ThreadLoacl中获取xid设置到请求头中给RM
参与方(RM)从请求中头中获取到该全局事务xid,设置到ThreadLoacl中,同时也会向seataserver注册该分支事务。
e.TM(发起方)将当前本地事务的结果,告诉给协调者TC,协调者TC在通知所有的分支是否回滚。
如果事务全部成功,TM和RM会根据事务ID和xid删除对应的undo_log表记录
如果事务异常,TM和RM根据事务ID和xid查询undo_log表,逆向生成sql语句执行回滚,同事删除undo_log表记录。


推荐阅读:
<<<分布式事务产生的背景
<<<解决分布式事务的核心思路
<<<柔性事务和刚性事务(ACID)
<<<CAP理论简单概况
<<<Base理论核心思想
<<<一致性协议--XA接口
<<<一致性协议--Jta规范
<<<一致性协议--2PC提交协议
<<<一致性协议--3PC提交协议
<<<2PC与3PC协议的提交区别
<<<主流的分布式事务解决框架
<<<LCN-框架介绍
<<<LCN-实现原理剖析
<<<LCN-事务协调者(TM)安装启动
<<<SpringBoot整合LCN
<<<LCN-核心源码分析
<<<LCN-集群模式介绍
<<<Seata-框架介绍
<<<Seata-TM执行时突然宕机了会造成什么问题
<<<Seata-核心源码分析
<<<SpringBoot整合Seata
<<<Seata与Lcn的区别

相关文章

  • Seata原理实现/执行流程/生命周期

    上一篇 << >>Seata-TM执行时突然宕机了会造成什么问题[https://www.jianshu.com/...

  • Seata实现原理

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

  • 99 MySQL性能实战优化

    mysql 性能优化 一 MySQL架构与执行流程原理 二 MySQL 索引底层实现原理 三 MYSQL事务...

  • Android面试总结(2018-03-07)

    融360 和 FunPlus+: 自定view的流程和生命周期 hashmap的实现原理(JDK1.7与JDK1....

  • (十分钟了解)Fragment:生命周期

    Fragment生命周期执行流程(注意斜体的不是生命周期方法): setUserVisibleHint()->on...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

  • spring启动之xml

    本文主要是整体启动流程请查看springboot原理(核心原理、启动流程、执行流程)[https://www.ji...

  • 最近阅读vue源码的一些理解

    vue的整个实现流程 大体的执行方法如下: new Vue init (合并配置,初始化生命周期,初始化事件中心,...

  • Fragment 生命周期介绍

    Fragment每个生命周期方法的意义、作用(注意红色的不是生命周期方法): Fragment生命周期执行流程(注...

  • springcloud整合seata

    前提seata必须实现高可用,请查看seata注册到nacos,实现高可用 添加依赖,此处采用seata1.3版本...

网友评论

    本文标题:Seata原理实现/执行流程/生命周期

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