溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

分布式事務(wù)GTS的價值和原理是什么

發(fā)布時間:2021-11-08 14:02:20 來源:億速云 閱讀:148 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要講解了“分布式事務(wù)GTS的價值和原理是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“分布式事務(wù)GTS的價值和原理是什么”吧!

GTS 今年雙 11 的成績

今年 2684 億的背后,有一個默默支撐,低調(diào)到幾乎被遺忘的中間件云產(chǎn)品——GTS(全局事務(wù)服務(wù),Global Transaction Service),穩(wěn)穩(wěn)地通過了自 2014 年誕生以來的第 5 次“大考”。

2019 年 11 月 1 日至 12 日,GTS 日均處理分布式事務(wù)數(shù)量達 億級 ,每天峰值 TPS 達 萬級 。

這背后最重要意義在于:成績是在給業(yè)務(wù)應(yīng)用的設(shè)計和開發(fā)帶來 0 負擔 的前提下得到的。

GTS 帶來的價值

隨著企業(yè)的發(fā)展,企業(yè)業(yè)務(wù)架構(gòu)面臨數(shù)據(jù)、服務(wù)的分布化,幾乎無可避免地要遇到分布式架構(gòu)帶來的數(shù)據(jù)一致性問題。

GTS 開創(chuàng)性地把分布式事務(wù)問題從業(yè)務(wù)中剝離出來,作為一個獨立的技術(shù)切面來單獨管理,以服務(wù)的形式給構(gòu)建在云上的應(yīng)用提供簡單、易用、高效的分布式事務(wù)解決方案。

GTS 給業(yè)務(wù)應(yīng)用帶來的價值體現(xiàn)在以下幾個方面:

  • 架構(gòu)復(fù)雜度降低:分布式事務(wù)這個 切面 的技術(shù)問題,全部 收斂 到 GTS 提供的服務(wù)來解決。

  • 設(shè)計和開發(fā)成本減輕:業(yè)務(wù)邏輯的設(shè)計和開發(fā),完全不需要針對是否涉及分布式事務(wù)而做任何額外的事情,對業(yè)務(wù) 0 侵入 。

  • 項目交付、迭代速度加快:歸因于上述兩點,項目得以很快交付和迭代。GTS 賦予業(yè)務(wù)應(yīng)用 快速試錯 的能力,在這個商業(yè)機會瞬息萬變的時代,顯得尤為重要。

設(shè)想一個典型的云原生企業(yè)應(yīng)用的成長路徑:

  • 1.0:單體應(yīng)用,快速上線,這個時候完全不涉及分布式事務(wù)。

  • 2.0:單個數(shù)據(jù)庫無法支撐,數(shù)據(jù)分布到多個數(shù)據(jù)庫,產(chǎn)生分布式事務(wù)問題。

  • 3.0:微服務(wù)化,進一步產(chǎn)生跨服務(wù)的分布式事務(wù)。

  • 4.0:跨應(yīng)用的整合,成為 SaaS 或 FaaS 的平臺,在更大的范圍,產(chǎn)生分布式事務(wù)問題。

基于 GTS 提供的分布式事務(wù)服務(wù),企業(yè)發(fā)展各階段產(chǎn)生的不同場景下的數(shù)據(jù)一致性問題,可以得到一站式的解決。這使得業(yè)務(wù)可以平滑自然地,像搭積木一樣成長起來。

從上面示例可以看到:GTS 實際上是把分布式事務(wù)(或者說分布式場景下的數(shù)據(jù)一致性)能力,作為一種 云原生 的服務(wù),提供給生長在云上的應(yīng)用,讓分布式事務(wù)不再成為業(yè)務(wù)要面臨的一個令人頭疼的問題,而成為一種可以彈性伸縮,按需取用的服務(wù)能力。

GTS 的原理和創(chuàng)新

下面,從幾個方面來大體介紹 GTS 的原理和創(chuàng)新。

首先,GTS 把分布式事務(wù)定義為由若干本地事務(wù)(分支)組成的全局事務(wù)。被全局事務(wù)管理的全部分支,將在協(xié)調(diào)器的協(xié)調(diào)下,保證一起成功或一起回滾。

其次,GTS 定義了一個事務(wù)模型,把整個全局事務(wù)過程模型化為 TM、RM、TC 三個組件之間協(xié)作的機制。

  • Transaction Coordinator (TC): 事務(wù)協(xié)調(diào)器,維護全局事務(wù)的運行狀態(tài),負責協(xié)調(diào)并驅(qū)動全局事務(wù)的提交或回滾。

  • Transaction Manager (TM): 控制全局事務(wù)的邊界,負責開啟一個全局事務(wù),并最終發(fā)起全局提交或全局回滾的決議。

  • Resource Manager (RM): 控制分支事務(wù),負責分支注冊、狀態(tài)匯報,并接收事務(wù)協(xié)調(diào)器的指令,驅(qū)動分支(本地)事務(wù)的提交和回滾。

一個典型的分布式事務(wù)過程:

  1. TM 向 TC 申請開啟一個全局事務(wù),全局事務(wù)創(chuàng)建成功并生成一個全局唯一的 XID。

  2. XID 在微服務(wù)調(diào)用鏈路的上下文中傳播。

  3. RM 向 TC 注冊分支事務(wù),將其納入 XID 對應(yīng)全局事務(wù)的管轄。

  4. TM 向 TC 發(fā)起針對 XID 的全局提交或回滾決議。

  5. TC 調(diào)度 XID 下管轄的全部分支事務(wù)完成提交或回滾請求。

第三,GTS 創(chuàng)新地基于 SQL 解析實現(xiàn)對業(yè)務(wù)無侵入的自動補償回滾機制。這種機制,GTS 將其命名為 Auto Transaction (AT) 模式?;竟ぷ髟砣缦拢?/p>

GTS 把全局事務(wù)分為兩個階段:執(zhí)行階段 和 完成階段 。

執(zhí)行階段:

GTS 的 JDBC 數(shù)據(jù)源代理通過對業(yè)務(wù) SQL 的解析,把業(yè)務(wù)數(shù)據(jù)在更新前后的數(shù)據(jù)鏡像組織成回滾日志,利用 本地事務(wù) 的 ACID 特性,將業(yè)務(wù)數(shù)據(jù)的更新和回滾日志的寫入在同一個 本地事務(wù) 中提交。

這樣,可以保證:任何提交的業(yè)務(wù)數(shù)據(jù)的更新一定有相應(yīng)的回滾日志存在。

基于這樣的機制,分支的本地事務(wù)便可以在全局事務(wù)的 執(zhí)行階段 提交,馬上釋放本地事務(wù)鎖定的資源。

完成階段:

  • 如果 TM 發(fā)出的決議是全局提交,此時分支事務(wù)此時已經(jīng)完成提交,不需要同步協(xié)調(diào)處理(只需要異步清理回滾日志),完成階段 可以非??焖俚赝瓿?。

  • 如果 TM 發(fā)出的決議是全局回滾,RM 收到協(xié)調(diào)器發(fā)來的回滾請求,通過 XID 和 Branch ID 找到相應(yīng)的回滾日志記錄,通過回滾記錄生成反向的更新 SQL 并執(zhí)行,以完成分支的回滾。

最后,GTS 通過事務(wù)協(xié)調(diào)器集群以及對業(yè)務(wù)應(yīng)用節(jié)點的容錯,實現(xiàn)一個拒絕單點故障的高可用服務(wù)。

一方面,GTS 服務(wù)集群機制,保障任意服務(wù)節(jié)點宕機,可以其他節(jié)點無縫接管。 另一方面,應(yīng)用任意節(jié)點的宕機,相應(yīng)事務(wù)分支的請求也會路由到連接相同數(shù)據(jù)庫的其他節(jié)點上,不影響全局事務(wù)的完整執(zhí)行。

分布式事務(wù)模式融合及標準化(保護)

截止目前,還沒有任何一種分布式事務(wù)的技術(shù)方案,可以滿足所有場景的問題。GTS 的 AT 模式適用于絕大部分常見場景,但仍有一些場景更適合于使用業(yè)界其他的分布式事務(wù)解決方案。GTS 會把各類解決方案融合到 GTS 提供的云服務(wù)框架中,為云原生應(yīng)用提供一站式的分布式事務(wù)服務(wù)。

這是 GTS 的抽象出的事務(wù)框架。通過這個抽象,分布式事務(wù)得以從整體架構(gòu)中剝離出來,形成一個單獨的技術(shù)切面,作為服務(wù)提供給應(yīng)用。

簡單來說,基于這個框架的應(yīng)用,其分布式事務(wù)問題,就收斂到基于 RM 的分支事務(wù)機制和 TC 提供的穩(wěn)定、可靠的服務(wù)中。分而治之,才能更有效地解決問題。

當前分布式應(yīng)用層面,最具代表性的事務(wù)模式有 4 種,分別是 AT、TCC、Saga 和 XA,這些模式各有優(yōu)缺點和適用的場景。

下面列出 4 種事務(wù)模式的優(yōu)劣,以及在 GTS 的事務(wù)框架中的映射。

AT

優(yōu)勢: 業(yè)務(wù)無侵入;輕量,不依賴數(shù)據(jù)庫的高級特性;回滾較少的場景性能高。

劣勢: 隔離性不高,目前只能支持到接近 讀已提交 的程度,更高的隔離級別,實現(xiàn)成本將非常高。

TCC

優(yōu)勢: 適用場景廣泛;隔離性和性能都可以做極致優(yōu)化。

劣勢: 業(yè)務(wù)侵入性非常高。

Saga

優(yōu)勢: 長事務(wù)。

劣勢: 有一定業(yè)務(wù)侵入性;隔離性差。

XA

優(yōu)勢: 業(yè)務(wù)無侵入;隔離性好。

劣勢: 阻塞協(xié)議。

GTS 與開源

為了更好地構(gòu)建一個云原生的分布式事務(wù)標準,2019 年初,GTS 選擇了開源,發(fā)起了開源項目 SEATA(曾用名 FESCAR)。項目開源不到 1 年時間,收獲 STAR 數(shù)已經(jīng)突破 1.2 萬,Contributor 超過 120 名,獲得社區(qū)的廣泛關(guān)注和認可。

分布式事務(wù)一直以來都可以稱得上是世界性難題,希望可以通過 SEATA 這個開放的平臺,聚集全世界的智慧來給這道難題交上一份讓人滿意的答卷。

進一步,GTS 將這份答卷轉(zhuǎn)化為阿里云上高效、穩(wěn)定、可靠的服務(wù),賦能給廣大云原生開發(fā)者。

感謝各位的閱讀,以上就是“分布式事務(wù)GTS的價值和原理是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對分布式事務(wù)GTS的價值和原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

gts
AI