博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里FESCAR: Fast & Easy Commit And Rollback
阅读量:2120 次
发布时间:2019-04-30

本文共 3300 字,大约阅读时间需要 11 分钟。

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.

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

But how about the whole business logic scope?

How FESCAR do?

FESCAR is just a solution to the problem mentioned above.

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.

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.

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.

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

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

Documentation

You can view the full documentation from the wiki: .

Reporting bugs

Please follow the  for reporting any issues.

Contributing

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

Contact

  • : TBD. FESCAR's IM tool for community messaging, collaboration and discovery.
  • : TBD. Follow along for latest FESCAR news on Twitter.
  • : TBD. Follow along for latest FESCAR news on Weibo (Twitter of China version).
  • : 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

License

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

from:  

转载地址:http://zawrf.baihongyu.com/

你可能感兴趣的文章
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>
Eclipse使用(十一)—— 使用Eclipse创建简单的Maven JavaWeb项目
查看>>
Intellij IDEA使用(十三)—— 在Intellij IDEA中配置Maven
查看>>
面试题 —— 关于main方法的十个面试题
查看>>
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
Redis学习笔记(四)—— redis的常用命令和五大数据类型的简单使用
查看>>
Win10+VS2015编译libcurl
查看>>
Windows下使用jsoncpp
查看>>
Ubuntu下测试使用Nginx+uWsgi+Django
查看>>
Windows下编译x264
查看>>
visual studio调试内存泄漏工具
查看>>
开源Faac实现PCM编码AAC
查看>>
Windows下wave API 音频采集
查看>>
借船过河:一个据说能看穿你的人性和欲望的心理测试
查看>>
AndroidStudio 导入三方库使用
查看>>
Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
查看>>