本文共 1010 字,大约阅读时间需要 3 分钟。
专注于Java领域优质技术号,欢迎关注
作者:阿飞的博客
FESCAR名字的由来:Fast & EaSy Commit And Rollback
被用在微服务架构中的高性能分布式事务解决方案。
让我们想象一个传统的应用,由3个模块构成,并且这三个模块使用同一个数据源。很明显,数据一致性由数据库提供的本地事务就能搞定。
local transaction
然而,一切美好都被在微服务架构中被打破。3个模块变成了3个服务,每个服务有独立的数据源(参考https://microservices.io/patterns/data/database-per-service.html)。每个服务的数据一致性由本地事务保证,但是跨服务的业务呢?如下图所示,某个业务既需要操作库存(Storage),又需要操作订单(Order),还需要操作账户(Account)。
distribution transaction
distribution transaction
首先,如果定义分布式事务?我们认为一个分布式事务是由多个分支事务组成的全局事务,通常来说,分支事务就是本地事务。
define distribution transaction
FESCAR有三个基本组件:
一个典型的FESCAR维护的分布式事务的生命周期如下:
如下图所示:
参考:https://github.com/alibaba/fescar
转载地址:http://xsenl.baihongyu.com/