美文网首页
68.Seata案例-运行流程分析

68.Seata案例-运行流程分析

作者: LANSHENGYANG | 来源:发表于2020-06-12 18:32 被阅读0次

    Seata运行流程分析

    image
    要点说明
    • 1、每个RM使用DataSourceProxy连接数据库,其目的是使用ConnectionProxy,使用数据源和数据连接代理的目的就是在第一阶段将undo_log和业务数据放在一个本地事务提交,这样就保存了只要有业务操作就一定有undo_log。
    • 2、在第一阶段undo_log中存放了数据修改前和修改后的值,为务回滚作好准备,所以第一阶段完成就已经将分支事务提交,也就释放了锁资源。
    • 3、TM开启全局事务开始,将XID全局务id放在務上下文中,通过feign调用也将XID传入下游分支事务,每个分支事务将自己的Branch ID分支事务ID与XID关联。
    • 4、第二阶段全局事务提交, TC会通知各各分支参与者提交分支务,在第一阶段就已经提交了分支事务,这里各各参与者只需要删除undo_ log即可,并且可以异步执行,第二阶段很快可以完成。
    • 5、第二阶段全局事务回滚,TC会通知各各分支参与者回滚分支事务,通过XID和Branch ID找到相应的回滚日志,通过回滚日志生成反向的SQL并执行,以完成分支務回滚到之前的状态,如果回滚失败则会重试回滚操作。

    相关文章

      网友评论

          本文标题:68.Seata案例-运行流程分析

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