博客
关于我
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/

    你可能感兴趣的文章
    Python/Selenium - 无法单击 www.instagram.com 上的“接受 cookie“按钮
    查看>>
    Python内置函数(35)——next
    查看>>
    python写入mysql
    查看>>
    python写入csv老是乱码或者各种不好
    查看>>
    Python内置函数
    查看>>
    Python2 安装MySQLdb库
    查看>>
    Python2 已终结,入手Python 3,你需要这30个技巧
    查看>>
    python写下拉列表在excel,无法使用python获取Excel下拉列表(组合框)值
    查看>>
    python2.7安装
    查看>>
    Python2.7安装ncmbot时提示:Microsoft Visual C++9.0 is required
    查看>>
    PYTHON2.Git.1
    查看>>
    python20181211
    查看>>
    Python内存管理机制
    查看>>
    Python2中range 和xrange的区别??
    查看>>
    python2和3的区别
    查看>>
    python2和python3的pip版本升级
    查看>>
    python2和python3的区别
    查看>>
    python2备份交换机配置脚本
    查看>>
    Python3 - 在字符串格式化程序参数中使用变量
    查看>>
    Python3 A*寻路算法实现
    查看>>