偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

關(guān)于開源分布式事務(wù)中間件Fescar,我們總結(jié)了開發(fā)者關(guān)心的13個問題

開源 分布式
開源分布式事務(wù)中間件 Fescar 自1月10日上線v0.1版本以來,受到了開發(fā)者們的極大關(guān)注(watch249,star3005,fork649,社區(qū)討論的issue58,數(shù)據(jù)統(tǒng)計于1月17日14:00),可見,天下苦分布式事務(wù)久矣。

[[255813]]

© Mikito Tateisi

開源分布式事務(wù)中間件 Fescar 自1月10日上線v0.1版本以來,受到了開發(fā)者們的極大關(guān)注(watch249,star3005,fork649,社區(qū)討論的issue58,數(shù)據(jù)統(tǒng)計于1月17日14:00),可見,天下苦分布式事務(wù)久矣。

為此,我們收集了大家在社區(qū)(Github)和社群關(guān)注的核心問題,總結(jié)如下,并給出回復(fù)。

Q1:Fescar 的發(fā)展經(jīng)歷了哪些歷程?和阿里云全局事務(wù)服務(wù)GTS之間是什么關(guān)系?

A1:阿里巴巴是國內(nèi)最早一批進行應(yīng)用分布式(微服務(wù)化)改造的企業(yè),所以很早就遇到微服務(wù)架構(gòu)下的分布式事務(wù)問題。

  • 2014 年

阿里巴巴中間件團隊發(fā)布TXC(Taobao Transaction Constructor),為集團內(nèi)應(yīng)用提供分布式事務(wù)服務(wù)。

  • 2016 年

TXC 經(jīng)過產(chǎn)品化改造,以GTS(Global TransactionService)的身份上線阿里云,成為當(dāng)時業(yè)界唯一一款云上分布式事務(wù)產(chǎn)品,以阿里云公有云或?qū)S性平鉀Q方案的形式,交付給眾多外部客戶。

  • 2019 年

基于 TXC 和 GTS 的技術(shù)積累,阿里巴巴中間件團隊發(fā)起了開源項目Fescar(Fast & EaSy Commit And Rollback, FESCAR),和社區(qū)一起建設(shè)這個分布式事務(wù)解決方案。

TXC/GTS/Fescar一脈相承,為解決微服務(wù)架構(gòu)下的分布式事務(wù)問題交出了一份與眾不同的答卷。

Q2:Fescar 有哪些適用場景?

A2:Fescar 的愿景是讓分布式事務(wù)的使用像現(xiàn)在本地事務(wù)的使用一樣簡單、高效,最終的目標(biāo)是希望可以適用于所有的分布式事務(wù)場景。目前,核心的 AT 模式適用于構(gòu)建于支持本地 ACID 事務(wù)的關(guān)系型數(shù)據(jù)庫。非關(guān)系型數(shù)據(jù)庫類資源的管理,通過 MT 模式來支持。AT 模式與 MT 模式完全兼容,所以可以在同一個分布式事務(wù)中,同時管理兩類資源。

Q3:目前有已經(jīng)有一些其他的分布式事務(wù)開源方案,F(xiàn)escar 和他們之間有哪些區(qū)別?和JTA支持分布式事務(wù)有哪些區(qū)別?

A3:既有的分布式事務(wù)解決方案按照對業(yè)務(wù)侵入性分為兩類,即:對業(yè)務(wù)無侵入的和對業(yè)務(wù)有侵入的。

  • 業(yè)務(wù)無侵入的方案

既有的主流分布式事務(wù)解決方案中,對業(yè)務(wù)無侵入的只有基于 XA 的方案(注:問題中提到的 JTA 是XA 方案的 Java 版本),但應(yīng)用XA 方案存在 3 個方面的問題:

1、要求數(shù)據(jù)庫提供對 XA 的支持。如果遇到不支持 XA(或支持得不好,比如 MySQL 5.7 以前的版本)的數(shù)據(jù)庫,則不能使用。

2、受協(xié)議本身的約束,事務(wù)資源(數(shù)據(jù)記錄、數(shù)據(jù)庫連接)的鎖定周期長。長周期的資源鎖定從業(yè)務(wù)層面來看,往往是不必要的,而因為事務(wù)資源的管理器是數(shù)據(jù)庫本身,應(yīng)用層無法插手。這樣形成的局面就是,基于 XA 的應(yīng)用往往性能會比較差,而且很難優(yōu)化。

3、已經(jīng)落地的基于 XA 的分布式解決方案,都依托于重量級的應(yīng)用服務(wù)器(Tuxedo/WebLogic/WebSphere 等),這是不適用于微服務(wù)架構(gòu)的。

  • 侵入業(yè)務(wù)的方案

實際上,最初分布式事務(wù)只有 XA 這個唯一方案。XA 是完備的,但在實踐過程中,由于種種原因(包含但不限于上面提到的3 點)往往不得不放棄,轉(zhuǎn)而從業(yè)務(wù)層面著手來解決分布式事務(wù)問題。比如:

  • 基于可靠消息的最終一致性方案
  • TCC
  • Saga

都屬于這一類。這些方案的具體機制在這里不做展開,網(wǎng)上這方面的論述文章非常多。總之,這些方案都要求在應(yīng)用的業(yè)務(wù)層面把分布式事務(wù)技術(shù)約束考慮到設(shè)計中,通常每一個服務(wù)都需要設(shè)計實現(xiàn)正向和反向的冪等接口。這樣的設(shè)計約束,往往會導(dǎo)致很高的研發(fā)和維護成本。

不可否認,侵入業(yè)務(wù)的分布式事務(wù)方案都經(jīng)過大量實踐驗證,能有效解決問題,在各行種業(yè)的業(yè)務(wù)應(yīng)用系統(tǒng)中起著重要作用。但回到原點來思考,這些方案的采用實際上都是迫于無奈。

回到問題:

與基于消息的最終一致、TCC、Saga等業(yè)務(wù)邏輯侵入方案的不同在于,F(xiàn)escar 的設(shè)計初衷就是保持對業(yè)務(wù)的非侵入性,不要求業(yè)務(wù)層面按照分布式事務(wù)的特定場景來設(shè)計正向和反向的兩套(甚至多套)業(yè)務(wù)邏輯。這方面的差別就不展開了。

與 XA 的區(qū)別在于,設(shè)計了一套不同與 XA 的兩階段協(xié)議,在保持對業(yè)務(wù)不侵入的前提下,保證良好的性能,也避免了對底層數(shù)據(jù)庫協(xié)議支持的要求。可以看作是一套輕量級的XA 機制。具體的差別如下:

  • 架構(gòu)層次

 

XA方案的 RM 實際上是在數(shù)據(jù)庫層,RM本質(zhì)上就是數(shù)據(jù)庫自身(通過提供支持 XA 的驅(qū)動程序來供應(yīng)用使用)。

而 Fescar 的RM 是以二方包的形式作為中間件層部署在應(yīng)用程序這一側(cè)的,不依賴與數(shù)據(jù)庫本身對協(xié)議的支持,當(dāng)然也不需要數(shù)據(jù)庫支持XA 協(xié)議。這點對于微服務(wù)化的架構(gòu)來說是非常重要的:應(yīng)用層不需要為本地事務(wù)和分布式事務(wù)兩類不同場景來適配兩套不同的數(shù)據(jù)庫驅(qū)動。

這個設(shè)計,剝離了分布式事務(wù)方案對數(shù)據(jù)庫在協(xié)議支持上的要求。

  • 兩階段提交

先來看一下 XA 的2PC 過程。

 

無論 Phase2 的決議是commit 還是 rollback,事務(wù)性資源的鎖都要保持到Phase2 完成才釋放。

再看 Fescar 的2PC 過程。

 

分支事務(wù)中數(shù)據(jù)的 本地鎖 由本地事務(wù)管理,在分支事務(wù) Phase1 結(jié)束時釋放。

同時,隨著本地事務(wù)結(jié)束,連接 也得以釋放。

分支事務(wù)中數(shù)據(jù)的 全局鎖 在事務(wù)協(xié)調(diào)器側(cè)管理,在決議 Phase2 全局提交時,全局鎖馬上可以釋放。只有在決議全局回滾的情況下,全局鎖 才被持有至分支的 Phase2 結(jié)束。

這個設(shè)計,極大地減少了分支事務(wù)對資源(數(shù)據(jù)和連接)的鎖定時間,給整體并發(fā)和吞吐的提升提供了基礎(chǔ)。

Q4:Fescar 支持 Dubbo 的哪些版本?

A4:所有版本。

Q5:Fescar 支持 Spring Cloud么?

A5:Fescar 與微服務(wù)框架的接口點在于,需要把事務(wù)的唯一標(biāo)識 XID(一個字符串)通過微服務(wù)框架的服務(wù)調(diào)用間調(diào)用的機制中,透明地傳遞,并通過 Fescar 的 API 來綁定(或解綁)到應(yīng)用的線程上下文中。(機制可以參考內(nèi)置的對 Dubbo 支持的實現(xiàn)com.alibaba.fescar.dubbo.TransactionPropagationFilter)所以,本質(zhì)上這個問題不是支不支持Spring Cloud,而是如何支持 Spring Cloud 中選用的服務(wù)調(diào)用機制。目前正在和 Spring Cloud Alibaba 的同學(xué)合作,準(zhǔn)備在v0.5.x版本(或更早)發(fā)布對 Spring Cloud默認的支持。同時,非常歡迎社區(qū)的朋友參與進來,貢獻包括 Spring Cloud 在內(nèi)的各類微服務(wù)框架的支持。

Q6:Fescar 是否支持本地跨庫多數(shù)據(jù)源?除了關(guān)系型數(shù)據(jù)庫,是否還支持NoSQL數(shù)據(jù)庫?

A6:本地跨多數(shù)據(jù)源同樣是支持的,在 Fescar 的架構(gòu)中,同一個服務(wù)中的多個數(shù)據(jù)源與跨服務(wù)的多個數(shù)據(jù)源,沒有本質(zhì)區(qū)別。AT 模式目前僅限于對關(guān)系型數(shù)據(jù)庫的支持(本身具備ACID 事務(wù)支持),后面會發(fā)布出來的 MT 模式可以支持 NoSQL 這類本身不具備本地事務(wù)支持的資源。

Q7:Fescar 現(xiàn)在開源的是AT模式,MT模式暫時不支持,什么時候會開源?

A7:當(dāng)前 0.1.0 版本只是把 Fescar 最核心的 AT 模式的最小集發(fā)布出來,一方面是按開源的規(guī)劃和架構(gòu)的重構(gòu)進展,另一方面也是希望通過最小集版本,讓用戶和開發(fā)者社區(qū)更容易理解到我們核心的設(shè)計思路,讓更多人比較容易地參與進來建設(shè),而不是完全由阿里巴巴主導(dǎo),僅僅把我們的整套方案開源出來給大家用而已。阿里巴巴在分布式事務(wù)上的技術(shù)積累,我們會通過 Fescar 項目毫無保留地貢獻給社區(qū),所有功能特性都會按規(guī)劃和社區(qū)的反饋陸續(xù)開源出來。MT 按初步的計劃,會在0.5.x 版本發(fā)布。

Q8:Fescar 什么時候提供HA cluster,單節(jié)點的server的瓶頸如何處理?

A8:按初步的計劃,HA Cluster 會在 0.5.x 版本發(fā)布,解決單機部署的單點問題。

Q9:因網(wǎng)絡(luò)中斷、網(wǎng)張閃斷、節(jié)點宕機和超時等引起的異常,F(xiàn)escar會提供相應(yīng)的補償措施么?

A9:這些異常情況的處理是分布式事務(wù)解決方案的基本要求,F(xiàn)escar 同樣也是提供了整套方案來處理各類異常場景。這方面的具體機制會在 HA Cluster 版本發(fā)布時,給出全面的分析介紹。

Q10:Fescar框架中,如何監(jiān)控分布式事務(wù)?

A10:監(jiān)控是非常重要的一塊兒內(nèi)容。TXC 和 GTS 的監(jiān)控在阿里巴巴內(nèi)部使用了很多基礎(chǔ)設(shè)施的輔助。而在開源版本中,我們還沒有一個現(xiàn)成的監(jiān)控方案。大體上,監(jiān)控的基礎(chǔ)是兩個方面:一方面是日志,通過日志的采集和處理,可以形成一個完整的事務(wù)鏈路,這些數(shù)據(jù)對于業(yè)務(wù)層面的分析和調(diào)優(yōu)是重要的參考依據(jù)。另一方面是 API,F(xiàn)escar 會提供一套管控 API,用于對運行時事務(wù)的管理。我們后續(xù)會把這兩方面的數(shù)據(jù)格式、部署形態(tài)及接口整理出來,希望和社區(qū)來共建監(jiān)控這個重要的方面。

Q11:Fescar 的roadmap 有了么?

A11:目前最新的roadmap如下:

v0.1.0

  • 微服務(wù)框架支持: Dubbo
  • 數(shù)據(jù)庫支持: MySQL
  • 基于 Spring AOP 的 Annotation
  • 事務(wù)協(xié)調(diào)器: 單機版本

v0.5.x

  • 微服務(wù)框架支持: Spring Cloud
  • MT 模式
  • 支持 TCC 模式事務(wù)的適配
  • 動態(tài)配置和服務(wù)發(fā)現(xiàn)
  • 事務(wù)協(xié)調(diào)器: 高可用集群版本

v0.8.x

  • Metrics
  • 控制臺: 監(jiān)控/部署/升級/擴縮容

v1.0.0

  • General Availability: 生產(chǎn)環(huán)境適用

v1.5.x

  • 數(shù)據(jù)庫支持: Oracle/PostgreSQL/OceanBase
  • 不依賴 Spring AOP 的 Annotation
  • 熱點數(shù)據(jù)的優(yōu)化處理機制
  • RocketMQ 事務(wù)消息納入全局事務(wù)管理
  • NoSQL 納入全局事務(wù)管理的適配機制
  • 支持 HBase
  • 支持 Redis

v2.0.0

  • 支持 XA

當(dāng)然,項目迭代演進的過程,我們最重視的是社區(qū)的聲音,路線圖會和社區(qū)充分交流及時進行調(diào)整。

Q12:Fescar 官網(wǎng)什么時候上線?

A12:Fescar 官方域名已經(jīng)注冊,官網(wǎng)將采用靜態(tài)開源站點搭建工具Docsite「傳送門」進行搭建,logo 已經(jīng)設(shè)計并將于近期公布。

Q13:如何加入 Fescar 社區(qū),進行貢獻,已經(jīng)摩拳擦掌了。

A13:我們非常歡迎大家通過各種形式參與到我們項目的建設(shè)中,包括但不限于:

  • 架構(gòu)設(shè)計
  • 模塊設(shè)計
  • 代碼實現(xiàn)
  • Bug Fix
  • Demo樣例
  • 文檔、網(wǎng)站和翻譯

具體的參與方法可以參見我們項目中的CONTRIBUTING 指引,或與 @eternaltingting@163.com聯(lián)系。實際上,我們并不拘泥于貢獻的形式,開發(fā)者提出的每一個 issue,無論是Bug Report、改進建議或者甚至是問題咨詢都代表著對項目的關(guān)注和幫助。希望 Fescar 項目和社區(qū)一起健康成長,成為分布式事務(wù)領(lǐng)域一個優(yōu)秀的解決方案。

本文作者:煊檍,社區(qū)昵稱sharajava,F(xiàn)escar 開源項目發(fā)起人,阿里巴巴中件間 TXC/GTS 研發(fā)團隊負責(zé)人,曾多年從事 WebLogic 核心研發(fā)工作,長期專注于中間件,在分布式事務(wù)領(lǐng)域的技術(shù)實踐較豐富。

責(zé)任編輯:武曉燕 來源: 云棲社區(qū)
相關(guān)推薦

2019-01-11 18:22:07

阿里巴巴技術(shù)開源

2025-03-27 11:03:18

2017-12-04 09:00:00

金融開源軟件分布式消息中間件

2021-11-14 16:07:35

中間件阿里Seata

2020-07-20 08:57:30

中間件持久化Redis

2021-02-11 08:21:02

中間件開發(fā)CRUD

2022-04-11 09:15:44

中間件開源

2019-11-19 08:47:45

Zookeeper分布式事務(wù)

2023-06-27 13:47:00

分布式事務(wù)本地事務(wù)

2024-05-07 07:58:10

數(shù)據(jù)架構(gòu)大數(shù)據(jù)中間件架構(gòu)

2019-08-12 11:00:59

美團網(wǎng)MySQL數(shù)據(jù)庫

2024-12-11 12:41:33

2019-09-29 11:04:22

MySQL數(shù)據(jù)庫Atlas

2020-02-10 15:30:51

數(shù)據(jù)庫MySQLDAL

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2010-07-26 13:25:11

SQL Server分

2025-06-12 08:34:48

云原生開源中間件

2011-10-28 09:20:36

dorado

2022-08-09 08:31:29

RocketMQ消息中間件

2025-01-15 08:34:00

分布式事務(wù)服務(wù)
點贊
收藏

51CTO技術(shù)棧公眾號