内容简介:FESCAR名字的由来:Fast & EaSy Commit And Rollback被用在微服务架构中的高性能分布式事务解决方案。让我们想象一个传统的应用,由3个模块构成,并且这三个模块使用同一个数据源。很明显,数据一致性由数据库提供的本地事务就能搞定。
FESCAR名字的由来:Fast & EaSy Commit And Rollback
-
FESCAR是啥?
被用在微服务架构中的高性能分布式事务解决方案。
-
微服务中的分布式事务问题
让我们想象一个传统的应用,由3个模块构成,并且这三个模块使用同一个数据源。很明显,数据一致性由数据库提供的本地事务就能搞定。
然而,一切美好都被在微服务架构中被打破。3个模块变成了3个服务,每个服务有独立的数据源(参考https://microservices.io/patterns/data/database-per-service.html)。每个服务的数据一致性由本地事务保证,但是跨服务的业务呢?如下图所示,某个业务既需要操作库存(Storage),又需要操作订单(Order),还需要操作账户(Account)。
-
FESCAR怎么做?
首先,如果定义分布式事务?我们认为一个分布式事务是由多个分支事务组成的全局事务,通常来说,分支事务就是本地事务。
FESCAR有三个基本组件:
-
Transaction Coordinator(TC):事务协调器,维护着全局事务和分支事务的状态, 它来决定全局的提交还是回滚。
-
Transaction Manager(TM): 事务管理器,定义全局事务的范围:开始一个全局事务,提交或者回滚一个全局事务。
-
Resource Manager(RM): 资源管理器,管理分支事务处理的资源,与TC通信以注册分支事务并报告分支事务的状态,并驱动分支事务提交或回滚.
一个典型的FESCAR维护的分布式事务的生命周期如下:
-
TM向TC请求开启一个全局事务,TC生成一个XID,一个表示全局事务的唯一ID;
-
通过微服务的调用链,XID被广播出去(图中绿色线路);
-
RM向TC注册一个属于XID表示的分布式事务下的本地事务(红色箭头);
-
TM向TC询问是提交还是回滚XID表示的全局事务;
-
TC驱动XID表示的全局事务下的所有分支事务,完成提交或者回滚动作。
如下图所示:
参考:https://github.com/alibaba/fescar
以上所述就是小编给大家介绍的《FESCAR:阿里重磅开源分布式事务解决方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 腾讯重磅开源分布式 NoSQL 存储系统 DCache
- 重磅!开源分布式 NewSQL 数据库 TiDB 2.0 正式发布
- NutzWk 5.2.0 重磅发布,Java 微服务分布式开发框架
- 重磅更新 开源分布式 NewSQL 数据库 TiDB 1.0 正式发布
- 重磅! 分布式数据库中间件Sharding-JDBC 2.0.0正式发布
- 苞米豆-lock4j 2.1.0 重磅更新,多种分布式锁同时支持
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法设计与分析基础
Anany Levitin / 清华大学出版社 / 2007-11 / 59.00元
作者基于丰富的教学经验,开发了一套对算法进行分类的新方法。这套方法站在通用问题求解策略的高度,能对现有的大多数算法进行准确分类,从而使读者能够沿着一条清晰的、一致的、连贯的思路来探索算法设计与分析这一迷人领域。本书作为第2版,相对第1版增加了新的习题,还增加了“迭代改进”一章,使得原来的分类方法更加完善。 本书十分适合作为算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要......一起来看看 《算法设计与分析基础》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
Markdown 在线编辑器
Markdown 在线编辑器