博客
关于我
02.Seata介绍
阅读量:774 次
发布时间:2019-03-21

本文共 1333 字,大约阅读时间需要 4 分钟。

Fescar与Seata:分布式事务的开源解决方案

Fescar是阿里巴巴开源的分布式事务中间件,专注于解决微服务场景下的分布式事务问题。它以高效且对业务侵入最小的方式,帮助开发者应对分布式事务中的挑战。Fescar的全称是“Fast&Easy Commit And Rollback”,最初由阿里内部的TXC(Taobao Transaction Constructor)和阿里云的GTS(Global Transaction Service)精炼而来。

Seata与Fescar的关系

Seata是Fescar的升级版本,自2019年4月起,Seata也被用来表示这款开源分布式事务解决方案。Seata由四个英文单词组成,简单易学且具有扩展性:Simple(简单)Extensible(可扩展)Autonomous(自治)Transaction Architecture(事务架构)

Seata介绍

Seata是一款开源的分布式事务解决方案,致力于为用户提供高性能和简单易用的分布式事务服务。它支持四种事务模式:AT、TCC、SAGA和XA,为用户提供一站式的分布式事务解决方案。

分布式事务问题及Seata的解决方案

分布式事务问题是指在分布式系统中,多个节点之间需要完成一系列原子操作,但由于网络延迟、网络故障等因素,难以实现本地事务的强一致性。Seata通过高效的协调机制,解决了这一问题。

Seata通过以下方式解决分布式事务问题:

  • 事务协调器(TC/Transaction Coordinator):维护全局事务和分支事务的状态,驱动全局提交或回滚。
  • 事务管理器(TM/Transaction Manager):控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交或全局回滚的决议。
  • 资源管理器(RM/Resource Manager):控制分支事务,负责分支注册,状态汇报,并接受事务协调器的指令,驱动分支(本地)事务的提交和回滚。
  • Seata管理分布式事务的典型生命周期

  • 事务管理器(TM)要求事务协调器(TC)开始新的全局事务:TC生成全局事务标识符(XID)。
  • XID通过微服务的调用链传播:确保所有参与事务的服务了解全局事务上下文。
  • 资源管理器(RM)将本地事务注册为XID到TC所管理的全局事务的分支:确保各服务事务与全局事务关联。
  • 事务管理器(TM)要求TC提交或回滚XID对应的全局事务:决定全局事务的最终结果。
  • 事务协调器(TC)在XID对应的全局事务下驱动所有分支事务完成提交或回滚:确保全局事务的强一致性。
  • Fescar与Seata的核心区别

    Fescar和Seata的主要区别在于发展历程和技术架构。Fescar最初是为了解决阿里内部的分布式事务问题而开发的,而Seata是对Fescar进行了全面升级,填补了更多分布式事务场景下的痛点点,提升了性能和可靠性。

    结论

    Seata作为Fescar的升级版本,不仅继承了Fescar的核心思想,更在性能、可靠性和灵活性方面进行了优化。在分布式事务领域,Seata通过高效的分布式协调机制,帮助开发者轻松应对复杂的分布式事务问题,成为开源分布式事务解决方案中的佼佼者。

    转载地址:http://xppgz.baihongyu.com/

    你可能感兴趣的文章
    Panalog 日志审计系统 sprog_upstatus.php SQL 注入漏洞复现(XVE-2024-5232)
    查看>>
    Panalog 日志审计系统 前台RCE漏洞复现
    查看>>
    PANDA VALUE_COUNTS包含GROUP BY之前的所有值
    查看>>
    Pandas - 有条件的删除重复项
    查看>>
    pandas -按连续日期时间段分组
    查看>>
    pandas -更改重新采样的时间序列的开始和结束日期
    查看>>
    pandas :to_excel() float_format
    查看>>
    pandas :加入有条件的数据框
    查看>>
    pandas :将多列汇总为一列,没有最后一列
    查看>>
    pandas :将时间戳转换为 datetime.date
    查看>>
    pandas :将行取消堆叠到新列中
    查看>>
    pandas DataFrame 中的自定义浮点格式
    查看>>
    Pandas DataFrame 的 describe()方法详解-ChatGPT4o作答
    查看>>
    Pandas DataFrame中删除列级的方法链接解决方案
    查看>>
    Pandas DataFrame中的列从浮点数输出到货币(负值)
    查看>>
    Pandas DataFrame中的列从浮点数输出到货币(负值)
    查看>>
    Pandas DataFrame多索引透视表-删除空头和轴行
    查看>>
    pandas DataFrame的一些操作
    查看>>
    Pandas Dataframe的日志文件
    查看>>
    Pandas df.iterrows() 并行化
    查看>>