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

 更新时间:2022年02月28日 17:01:10   作者:kl  
这篇文章主要为大家介绍解析阿里GTS开源版本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分布式事务的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot解决jar包冲突的问题,简单有效

    SpringBoot解决jar包冲突的问题,简单有效

    这篇文章主要介绍了SpringBoot解决jar包冲突的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 5个主流的Java开源IDE工具详解

    5个主流的Java开源IDE工具详解

    这篇文章主要介绍了5个主流的Java开源IDE工具,无论如何,Java在当今使用的编程语言中始终排在前三名,在TIOBE索引中涉及700万到1000万的程序员和开发者
    2020-07-07
  • mybatis-generator-gui根据需求改动示例

    mybatis-generator-gui根据需求改动示例

    这篇文章主要为大家介绍了mybatis-generator-gui根据需求改动示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java日常练习题,每天进步一点点(2)

    Java日常练习题,每天进步一点点(2)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • Java双括弧初始化操作技巧

    Java双括弧初始化操作技巧

    这篇文章主要介绍了Java双括弧初始化操作技巧,这种方法不仅提高了代码的可读性,而且简化了代码的数量,需要的朋友可以参考下
    2015-12-12
  • SpringBoot整合Minio实现上传文件的完整步骤记录

    SpringBoot整合Minio实现上传文件的完整步骤记录

    MinIO是一个基于Apache License v2.0开源协议的对象存储服务,它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,下面这篇文章主要给大家介绍了关于SpringBoot整合Minio实现上传文件的完整步骤,需要的朋友可以参考下
    2022-05-05
  • 详细聊聊Spring MVC重定向与转发

    详细聊聊Spring MVC重定向与转发

    大家应该都知道请求重定向和请求转发都是web开发中资源跳转的方式,这篇文章主要给大家介绍了关于Spring MVC重定向与转发的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • 解决没有@RunWith 和 @SpringBootTest注解或失效问题

    解决没有@RunWith 和 @SpringBootTest注解或失效问题

    这篇文章主要介绍了解决没有@RunWith 和 @SpringBootTest注解或失效问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 详解Spring Boot中PATCH上传文件的问题

    详解Spring Boot中PATCH上传文件的问题

    这篇文章主要介绍了详解Spring Boot中PATCH上传文件的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • 基于Java8并行流(parallelStream)的注意点

    基于Java8并行流(parallelStream)的注意点

    这篇文章主要介绍了Java8并行流(parallelStream)的注意点,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论