13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

FESCAR:阿里重磅开源分布式事务解决方案

FESCAR:阿里重磅开源分布式事务解决方案

作者:阿飞的博客 2019-01-11 18:22:07

新闻

开源

分布式 让我们想象一个传统的应用,由3个模块构成,并且这三个模块使用同一个数据源。很明显,数据一致性由数据库提供的本地事务就能搞定。

创新互联公司是一家专注于成都网站制作、成都网站设计、外贸营销网站建设与策划设计,华宁网站建设哪家好?创新互联公司做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:华宁等地区。华宁做网站价格咨询:028-86922220

FESCAR名字的由来:Fast & EaSy Commit And Rollback

被用在微服务架构中的高性能分布式事务解决方案。

让我们想象一个传统的应用,由3个模块构成,并且这三个模块使用同一个数据源。很明显,数据一致性由数据库提供的本地事务就能搞定。

[[255360]] local transaction

然而,一切美好都被在微服务架构中被打破。3个模块变成了3个服务,每个服务有独立的数据源(参考https://microservices.io/patterns/data/database-per-service.html)。每个服务的数据一致性由本地事务保证,但是跨服务的业务呢?如下图所示,某个业务既需要操作库存(Storage),又需要操作订单(Order),还需要操作账户(Account)。

[[255361]]

distribution transaction

[[255362]] distribution transaction

首先,如果定义分布式事务?我们认为一个分布式事务是由多个分支事务组成的全局事务,通常来说,分支事务就是本地事务。

[[255363]]

define distribution transaction

FESCAR有三个基本组件:

[[255364]] FESCAR 3 components

一个典型的FESCAR维护的分布式事务的生命周期如下:

  1. TM向TC请求开启一个全局事务,TC生成一个XID,一个表示全局事务的***ID;

  2. 通过微服务的调用链,XID被广播出去(图中绿色线路);

  3. RM向TC注册一个属于XID表示的分布式事务下的本地事务(红色箭头);

  4. TM向TC询问是提交还是回滚XID表示的全局事务;

  5. TC驱动XID表示的全局事务下的所有分支事务,完成提交或者回滚动作。

如下图所示:

[[255365]] lifecycle

参考:https://github.com/alibaba/fescar


新闻名称:FESCAR:阿里重磅开源分布式事务解决方案
网页地址:http://cdbrznjsb.com/article/ccdjpso.html

其他资讯

让你的专属顾问为你服务