美文网首页
64.Seata介绍

64.Seata介绍

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

Seata介绍

  • 2019年1月,阿里巴巴中间件团队发起了开源项目Fescar(Fast & EaSy And Rollback),其愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。后来更名为Seata,意为:Simple Extensible Autonomous Transaction Architecture,是一套分布式事务解决方案。
  • Seata的设计目标是对业务无侵入,因此从业务无侵入的2PC方案着手,在传统2PC的基础上演进.它把一个分布式事务理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致,要么一起成功提交,要么一起失败回滚。此外,通常分支事务就是一个关系数据库的本地事务。


    image

Seata主要由三个重要组件组成:

  • TC:Transaction Coordinator 事务协调器,管理全局分支事务的状态,用于全局性事务的提交和回滚。
  • TM:Transaction Manager 事务管理器,用于开启全局,提交或者回滚全局事务。
  • RM:ResourceManager 资源管理器,用于分支事务上的资源管理器,向TC注册分支事务,上报分支事务的状态,接受TC的命令来提交或者回滚分支事务。


    image
Seata的执行流程如下:
  • 1.A服务的TM向TC申请开启一个全局事务,TC就会创建一个全局事务并返回一个唯一的XID
  • 2.A服务的RM向TC注册分支事务,并及其纳入XID对应全局事务的管辖
  • 3.A服务执行分支事务,向数据库做操作
  • 4.A服务开始远程调用B服务,此时XID会在微服务的调用链上传播
  • 5.B服务的RM向TC注册分支事务,并将其纳入XID对应的全局事务的管辖
  • 6.B服务执行分支事务,向数据库做操作
  • 7.全局事务调用链处理完毕,TM根据有异常向TC发起全局事务的提交或者回滚
  • 8.TC协调其管辖之下的所有分支事务,决定是否回滚
Seata实现2PC和传统2PC的差别:
  • 1.架构层次方面,传统2PC方案的RM实际上是在数据库层,RM本质上就是数据库自身,通过XA协议实现,而Sesta的RM是以jar包的形式作为中间件层部署在应用层序这一侧的。
  • 2.两阶段提交方面,传统2PC无论第二阶段的决议是commit还是rollback,事务性资源的锁都要保持到Phase2完成才释放。而Seata的做法是在Phase1就将本地事务提交,这样可以省去Phase2持锁的时间,整体提高效率。

相关文章

  • 64.Seata介绍

    Seata介绍 2019年1月,阿里巴巴中间件团队发起了开源项目Fescar(Fast & EaSy And Ro...

  • Runtime介绍---术语介绍

    1. 什么是Runtime Runtime又叫运行时,是一套C语言的API。 我们平时编写的OC代码,底层都是基于...

  • 介绍

    万物终有一天会消失殆尽,诸神出卖黎明,光明为黑暗所湮灭,日月皆痕,海潮鸣泣,幼雏嚎啕,生灵涂炭。 托里奥世纪第20...

  • 介绍😊

    大家好,我是beth,初入简书,不邀自来,还请各位见谅! 先说说我是怎么想着来的吧?这不是刚过了一个寒假嘛...

  • 介绍

    在这个世界上还有三个家族他们不受各个国家联合国管。但他们身上有着使命分别是帝国家族曲国家族圣国家族。他们隐藏在一个...

  • 介绍

    云轩:主角,星罗帝国的二皇子。从小就不能练气,被人们称为废物。直到12岁的时候,自己的武魂觉醒才能练气,双...

  • 介绍

    万花阁 神秘至极的组织,亦正亦邪。万花阁的人行动隐秘,至今未被发现所在地。听说组成成员均以花来命名。所到之处,皆留...

  • 介绍

    此书命曰元.八洲传。属九洲四传第二部。第一部,上古往事。上古往事乃元八洲传外传。前两部为战胜心魔,而第三部,大梦...

  • 介绍

    千肆篇 7月的天气燥热,但在红杏阁里这份燥热就别有一番风味。漫天的胭脂水粉的香味变成了调味剂,女人们千姿百媚,在...

  • 介绍

    该文集属于收录文集,里面的内容不全是本人创作,有收录个人喜欢的内容。 *(偏个人向)

网友评论

      本文标题:64.Seata介绍

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