专栏首页歪脖贰点零分布式事务开源解决方案——FESCAR

分布式事务开源解决方案——FESCAR

分布式事务开源解决方案——FESCAR

涉及到的分布式事务,想必大家都是盼着有一个开箱即用的解决方案,而不是自己动手来写。阿里云有款产品叫“全局事务服务 GTS”,但终究是收费的,且只能运行在阿里云平台,多少有些遗憾。

下面来看看什么是fescar,github上给出来的Description是这样的:

fescar is an easy-to-use, high-performance, java based, open source distributed transaction solution.

再扒一扒,还能看到GTS的身影的。

演进历史

  • TXC:Taobao Transaction Constructor。
  • GTS:Global Transaction Service,2016年TXC作为阿里中间件的产品,更名为 GTS 发布。
  • FESCAR:开始基于TXC/GTS开源FESCAR。2019-01-09日发布首个版本v0.1.0,支持Dubbo,SpringCloud,Motan等框架。

FESACR包含三个最基本的组件

Transaction Coordinator(TC) : 维护局部、全局事务状态,推动全局事务提交或回滚。

Transaction Manager(TM) : 定义全局事务范围:开启、提交或回滚。

Resource Manager(RM) : 管理正在处理的分支事务的资源,与TC对话以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

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

  1. TM要求TC开始新的全局事务。TC生成一个表示全局事务的xid。
  2. xid通过微服务的调用链传播。
  3. RM将本地事务注册为xid到TC的相应全局事务的分支。
  4. TM请求TC提交或回滚xid的相应全局事务。
  5. TC驱动xid对应的全局事务下的所有分支事务完成分支提交或回滚。

本篇仅提供一个引子,详细了解Fescar理论以及如何将Fescar应用到项目中可参照官方文档,地址:https://github.com/alibaba/fescar。

本文分享自微信公众号 - 歪脖贰点零(growithus)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 集合中的线程初体验

    本章继续讲集合,先来看看Set集合。Set集合的特点,1:无序,2:无重复。上一章讲了HashMap,最后提到HashSet的底层实现其实就是HashMap。那...

    用户5745563
  • Python——云里雾里的生成器、迭代器

    关于生成器generator,从字面上理解,就是能生成***的机器,的确它是一个很牛逼的机器,他可以生成很多我们需要的数据,比如全体自然数,好好想一下,能用哪个...

    Ed_Frey
  • 泛型接口,泛型类和泛型通配符

    泛型的使用位置,除了最常见的约束集合元素,还可以使用在接口,类,方法上面。最本质的原因就是为了在使用接口,类,方法的时候,可以将类型作为参数,进行类型的参数传递...

    用户5745563
  • 第九章 tomcat配置

    上一章,我们介绍了apache服务的部署,其中我们介绍过网页开发所用到的语言,以asp、jsp、php为主,我们已经演示过php页面的使用。本章我们将演示jsp...

    晓天
  • 初学编程,选择java好还是C#好?分别能从事些什么工作?

    从事嵌入式开发多年,主要玩过三种编程语言,java,C/C++三种,C#也用来设计过桌面测试工具,整体来讲使用的企业和程序员相对java还是少太多了,现在jav...

    程序员互动联盟
  • 通配符的上下限与泛型方法

    本章继续讲解泛型的上下限和其他的知识点,由于概念的复杂性,这里继续使用Book这个类来描述,使概念理解起来具备连续性。

    用户5745563
  • 从辣条国家标准到 java 接口规范

    接口很个很重要的知识点,不管是我们使用别人的工具,还是我们自己项目,都会大量的接触到接口。

    用户5745563
  • Java基础(二)基本语法

    一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

    一觉睡到小时候
  • Go语言开发,月薪如何达到3万?

    一种编程值多少钱除了自身的技术能力之外,主要还是看市场对于这种编程语言的需求,现在很多的招聘单位对于go语言的岗位上薪资都在3万以上,但是具体看细节要求除了对于...

    程序员互动联盟
  • Java基础(三)基本数据类型

    内置数据类型:Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

    一觉睡到小时候

扫码关注云+社区

领取腾讯云代金券