阿里FESCAR: Fast & Easy Commit And Rollback

FESCAR是一款专为微服务架构设计的分布式事务解决方案,旨在解决传统单体应用向微服务迁移过程中产生的数据一致性问题。通过定义全局事务与分支事务的概念,结合事务协调者、事务管理者及资源管理者三个核心组件,FESCAR能够有效管理分布式环境下的事务处理,确保跨服务的数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

What is FESCAR?

distributed transaction solution with high performance and ease of use for microservices architecture.

Distributed Transaction Problem in Microservices

Let's imagine a traditional monolithic application. Its business is built up with 3 modules. They use a single local data source.

Naturally, data consistency will be guaranteed by the local transaction.

Monolithic App

Things have changed in microservices architecture. The 3 modules mentioned above are designed to be 3 services on top of 3 different data sources (Pattern: Database per service). Data consistency within every single service is naturally guaranteed by the local transaction.

But how about the whole business logic scope?

Microservices Problem

How FESCAR do?

FESCAR is just a solution to the problem mentioned above.

FESCAR solution

Firstly, how to define a Distributed Transaction?

We say, a Distributed Transaction is a Global Transaction which is made up with a batch of Branch Transaction, and normally Branch Transaction is just Local Transaction.

Global & Branch

There are 3 basic components in FESCAR:

  • Transaction Coordinator(TC): Maintain status of global and branch transactions, drive the global commit or rollback.
  • Transaction Manager(TM): Define the scope of global transaction: begin a global transaction, commit or rollback a global transaction.
  • Resource Manager(RM): Manage resources that branch transactions working on, talk to TC for registering branch transactions and reporting status of branch transactions, and drive the branch transaction commit or rollback.

Model

A typical lifecycle of FESCAR managed distributed transaction:

  1. TM asks TC to begin a new global transaction. TC generates an XID representing the global transaction.
  2. XID is propagated through microservices' invoke chain.
  3. RM register local transaction as a branch of the corresponding global transaction of XID to TC.
  4. TM asks TC for committing or rollbacking the corresponding global transaction of XID.
  5. TC drives all branch transactions under the corresponding global transaction of XID to finish branch committing or rollbacking.

Typical Process

For more details about principle and design, please go to FESCAR wiki page.

History

  • TXC: Taobao Transaction Constructor. Alibaba middleware team start this project since 2014 to meet distributed transaction problem caused by application architecture change from monolithic to microservices.
  • GTS: Global Transaction Service. TXC as an Aliyun middleware product with new name GTS was published since 2016.
  • FESCAR: we start the open source project FESCAR based on TXC/GTS since 2019 to work closely with the community in the future.

Quick Start

Quick Start

Documentation

You can view the full documentation from the wiki: FESCAR wiki page.

Reporting bugs

Please follow the template for reporting any issues.

Contributing

Contributors are welcomed to join the FEATS project. Please check CONTRIBUTING about how to contribute to this project.

Contact

  • Gitter: TBD. FESCAR's IM tool for community messaging, collaboration and discovery.
  • Twitter: TBD. Follow along for latest FESCAR news on Twitter.
  • Weibo: TBD. Follow along for latest FESCAR news on Weibo (Twitter of China version).
  • Segmentfault: TBD. Get the latest notice and prompt help from Segmentfault.
  • Email Group:
    • TBD: FESCAR usage general discussion.
    • TBD: FESCAR developer discussion (APIs, feature design, etc).
    • TBD: Commits notice, very high frequency.

Dingtalk

dingding.png

License

FESCAR is under the Apache 2.0 license. See the LICENSE file for details.

from: https://github.com/alibaba/fescar?tdsourcetag=s_pctim_aiomsg 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值