解析阿里GTS开源版本fescar分布式事务

目录
  • 前言碎语
  • 什么是FESCAR?
    • 微服务中的分布式事务问题
    • FESCAR怎么做?
    • FESACR有3个基本组件:
    • FESCAR管理分布式事务的典型生命周期:
    • 历史

前言碎语

阿里重磅开源fescar分布式事务框架、其前身是拥有多项专利的云分布式事务产品GTS、很早前阿里在推广GTS分布式事务的时候就隐隐透露过可能会有开源项目的推出,终于在社区千呼万唤之下fescar发布了。目前是0.1的版本,因为脱胎于商业产品,社区版本要上生产环境可能需要在社区迭代孵化一段时间。代码可以先拉下来研究一下,后期持续关注fescar的发展。

项目地址:https://github.com/alibaba/fescar

什么是FESCAR?

一种分布式事务解决方案,具有高性能和易用性的微服务架构。

微服务中的分布式事务问题

让我们想象一下传统的单片应用程序。其业务由3个模块构成。他们使用单个本地数据源。

当然,本地交易可以保证数据的一致性。

微服务架构发生了变化。提到的3个模块设计为3个不同数据源之上的3个服务(模式:每个服务的数据库)。本地事务自然保证每个服务中的数据一致性。

但整个业务逻辑范围如何呢?

FESCAR怎么做?

FESCAR只是上述问题的解决方案。

首先,如何定义分布式事务?

我们说,分布式事务是一个全局事务,由一批Branch Transation组成,通常Branch Transation只是本地事务。

FESACR有3个基本组件:

  • 事务协调器(TC):维护全局和分支事务的状态,驱动全局提交或回滚。
  • Transaction Manager(TM):定义全局事务的范围:开始全局事务,提交或回滚全局事务。
  • 资源管理器(RM):管理分支事务的资源,与TC通信以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

FESCAR管理分布式事务的典型生命周期:

  • TM要求TC开始新的全球交易。TC生成表示全局事务的XID。
  • XID通过微服务的调用链传播。
  • RM将本地事务注册为XID到TC的相应全局事务的分支。
  • TM要求TC提交或回滚XID的相应全局事务。
  • TC在XID的相应全局事务下驱动所有分支事务以完成分支提交或rollbaking。

有关原理和设计的更多详细信息,请访问FESCAR维基页面

历史

  • TXC:淘宝交易构造函数。阿里巴巴中间件团队自2014年起启动该项目,以满足应用程序架构从单一服务变为微服务所导致的直接交易问题。
  • GTS:全球交易服务。TXC作为Aliyun中间件产品,新名称GTS自2016年起发布。
  • FESCAR:我们从2019年开始基于TXC / GTS开源开源项目FESCAR,以便与社区密切合作。

以上就是解析阿里GTS开源版本fescar分布式事务的详细内容,更多关于阿里GTS开源版本fescar分布式事务的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解SpringBoot基于Dubbo和Seata的分布式事务解决方案

    1. 分布式事务初探 一般来说,目前市面上的数据库都支持本地事务,也就是在你的应用程序中,在一个数据库连接下的操作,可以很容易的实现事务的操作. 但是目前,基于SOA的思想,大部分项目都采用微服务架构后,就会出现了跨服务间的事务需求,这就称为分布式事务. 本文假设你已经了解了事务的运行机制,如果你不了解事务,那么我建议先去看下事务相关的文章,再来阅读本文. 1.1 什么是分布式事务 对于传统的单体应用而言,实现本地事务可以依赖Spring的@Transactional注解标识方法,实现事务非常简

  • Springboot-dubbo-fescar 阿里分布式事务的实现方法

    大家可以自行百度下阿里分布式事务,在这里我就不啰嗦了.下面是阿里分布式事务开源框架的一些资料,本文是springboot+dubbo+fescar的集成. 快速开始 https://github.com/alibaba/fescar/wiki/Quick-Start GIT地址 https://github.com/alibaba/fescar 1.sql CREATE TABLE `undo_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `br

  • SpringBoot+Dubbo+Seata分布式事务实战详解

    前言 Seata 是 阿里巴巴开源的分布式事务中间件,以高效并且对业务0侵入的方式,解决微服务场景下面临的分布式事务问题. 事实上,官方在GitHub已经给出了多种环境下的Seata应用示例项目,地址:https://github.com/seata/seata-samples. 为什么笔者要重新写一遍呢,主要原因有两点: 官网代码示例中,依赖太多,分不清哪些有什么作用 Seata相关资料较少,笔者在搭建的过程中,遇到了一些坑,记录一下 一.环境准备 本文涉及软件环境如下: SpringBoot

  • 详解Spring Boot微服务如何集成fescar解决分布式事务问题

    什么是fescar? 关于fescar的详细介绍,请参阅fescar wiki. 传统的2PC提交协议,会持有一个全局性的锁,所有局部事务预提交成功后一起提交,或有一个局部事务预提交失败后一起回滚,最后释放全局锁.锁持有的时间较长,会对并发造成较大的影响,死锁的风险也较高. fescar的创新之处在于,每个局部事务执行完立即提交,释放本地锁:它会去解析你代码中的sql,从数据库中获得事务提交前的事务资源即数据,存放到undo_log中,全局事务协调器在回滚的时候直接使用undo_log中的数据覆

  • 解析阿里GTS开源版本fescar分布式事务

    目录 前言碎语 什么是FESCAR? 微服务中的分布式事务问题 FESCAR怎么做? FESACR有3个基本组件: FESCAR管理分布式事务的典型生命周期: 历史 前言碎语 阿里重磅开源fescar分布式事务框架.其前身是拥有多项专利的云分布式事务产品GTS.很早前阿里在推广GTS分布式事务的时候就隐隐透露过可能会有开源项目的推出,终于在社区千呼万唤之下fescar发布了.目前是0.1的版本,因为脱胎于商业产品,社区版本要上生产环境可能需要在社区迭代孵化一段时间.代码可以先拉下来研究一下,后期

  • 解析探秘fescar分布式事务实现原理

    目录 前言 项目说明 fescar的TXC模型 项目结构解析 通过[examples]模块的实例看下效果 第一步. 第二步. 第三步. fescar事务过程分析 首先分析配置文件 [TM]模块启动全局事务 [DUBBO]全局事务XID的传递 [RM]模块本地资源管理的介入 PLAINEXECUTOR: UPDATEEXECUTOR.DELETEEXECUTOR.INSERTEXECUTOR: SELECTFORUPDATEEXECUTOR: 分支事务的注册和上报 [SERVER]模块协调全局 结

  • Springcloud seata分布式事务实现代码解析

    Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.本篇不涉及其原理,只用代码构建项目简单试用一下其回滚的机制. 大致上seata分为TC,TM,RM三大构建成整体.它们之间的包含关系如下.即一(xid主键编码,记录信息)带三(TC,TM,RM) 下面之间构建项目进行测试. 1.下载seata并解压,然后改动配置文件. http://seata.io/zh-cn/blog/download.html官网下载. 解压之后到conf中修改file和registry

  • tcc分布式事务框架体系解析

    目录 前言碎语 以电商下单为例 订单服务: 库存服务: 支付服务: hmily事务框架怎么做的? 实现HmilyTransactionInterceptor接口 dubbo的aspect抽象实现 dubbo的HmilyTransactionInterceptor实现 启动事务处理器处理逻辑如下 需要注意三个地方 参数者事务处理器 文末结语 前言碎语 楼主之前推荐过2pc的分布式事务框架LCN.今天来详细聊聊TCC事务协议. 首先我们了解下什么是tcc,如下图 tcc分布式事务协议控制整体业务事务

  • Java分布式事务管理框架之Seata

    目录 Seata介绍 三大组件 实现原理 四种事务模式 搭建seata服务端 单机版安装 集群安装 Seata介绍 Seata:Simple Extensible Autonomous Transaction Architecture,简易可扩展的自治式分布式事务管理框架,其前身是fescar.是一种简单分布式事务的解决方案.Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一

  • 关于MySQL与Golan分布式事务经典的七种解决方案

    目录 1.基础理论 1.1 事务 1.2 分布式事务 2.分布式事务的解决方案 2.1 两阶段提交/XA 2.2 SAGA 2.3 TCC 2.4 本地消息表 2.5 事务消息 2.6 最大努力通知 2.7 AT事务模式 3.异常处理 3.1 异常情况 3.2 子事务屏障 3.3 子事务屏障原理 3.4 子事务屏障小结 4.分布式事务实践 4.1 一个SAGA事务 4.2 处理网络异常 4.3 处理回滚 5.总结 前言: 随着业务的快速发展.业务复杂度越来越高,几乎每个公司的系统都会从单体走向分

  • Spring Cloud + Nacos + Seata整合过程(分布式事务解决方案)

    目录 一.简介 二.seata-server部署 1.官网下载 2.解压到本地 3.修改配置文件 4.seata数据库初始化 5.业务数据库 6.启动seata-server 三.微服务项目集成Seata 1.引入依赖 2.配置文件 一.简介    Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务.   2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区

  • 一文搞明白Java Spring Boot分布式事务解决方案

    目录 前言 1. 什么是反向补偿 2. 基本概念梳理 3. 什么是两阶段提交 4. AT 模式 5. TCC 模式 6. XA 模式 7. Saga 模式 前言 分布式事务,咱们前边也聊过很多次了,网上其实也有不少文章在介绍分布式事务,不过里边都会涉及到不少专业名词,看的大家云里雾里,所以还是有一些小伙伴在微信上问我. 那么今天,我就再来一篇文章,和大家捋一捋这个话题.以下的内容主要围绕阿里的 seata 来和大家解释. 1. 什么是反向补偿 首先,来和大家解释一个名词,大家在看分布式事务相关资

随机推荐