Java 的开源分布式事务解决方案框架 fescar

fescar 全称为:Fast & Easy Commit And Rollback。它是一个完全基于 Java 的分布式事务解决框架。fescar 拥有很高的性能,并且使用非常的方便!

FESCAR 的发展

  • TXC:淘宝交易构造函数。阿里巴巴中间件团队自2014年起启动该项目,以解决因应用程序架构从单片机改为微服务而导致的分布式事务问题。
  • GTS:全球交易服务。TXC作为Aliyun中间件产品,新名称GTS自2016年起发布。
  • FESCAR:从2019年开始基于TXC / GTS开源开源项目FESCAR,以便将来与社区密切合作。

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

当然,本地事务将保证数据的一致性。

Java 的开源分布式事务解决方案框架 fescar_第1张图片

       微服务架构的情况发生了变化。上面提到的3个模块被设计为3个不同数据源之上的3个服务,每个服务的数据库独立。这样本地事务就无法自然的保证每个服务中的数据一致性。

每个服务之间的关系,将如下所示:

Java 的开源分布式事务解决方案框架 fescar_第2张图片

这种情况,我们就可以使用 fescar 来解决事务问题。

Java 的开源分布式事务解决方案框架 fescar_第3张图片

上面这张图就是 fescar 的解决方案!

有些人可能还不明白什么是分布式事务?分布式事务可以看成是一个全局事务和一系列子事务组成。

Java 的开源分布式事务解决方案框架 fescar_第4张图片

分布式事务是一个全局事务,由一批分支事务组成,通常分支事务只是本地事务。分布式事务同样支持本地事务要么全部成功要么全部失败的特性。

FESCAR 有 3 个基本组件:

事务协调器(TC):维护全局和分支事务的状态,驱动全局提交或回滚。

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

资源管理器(RM):管理分支事务的资源,与TC通信以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

Java 的开源分布式事务解决方案框架 fescar_第5张图片

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

TM要求TC开始新的全局交易。TC生成表示全局事务的XID。

XID通过微服务的调用链传播。

RM将本地事务注册为XID到TC的相应全局事务的分支。

TM要求TC提交或回滚XID的相应全局事务。

TC在XID的相应全局事务下驱动所有分支事务以完成分支提交或回滚。  

fescar 经历过阿里生产环境的多年运行,非常的稳定可靠。目前该开源的框架在 Github 上已有众多的实践者在使用。

你可能感兴趣的:(java,分布式)