破解世界性技術難題! GTS讓分布式事務簡單高效

2021-09-08 14:03:23 字數 3610 閱讀 4935

近日,2017雲棲大會·深圳峰會如期舉行,多項阿里雲新產品對外發布。在企業級網際網路架構分會場,來自阿里中介軟體(aliware)的技術專家及合作夥伴,為現場參會嘉賓帶來最新的傳統it架構到企業級網際網路架構跨越式公升級、實現網際網路轉型的產品及解決方案。其中高階技術專家姜宇在分享中帶來的aliware新產品—全域性事務服務(global transaction service ,簡稱gts),在分布式事務處理上帶來的高效能和技術創新令到場參會的各路技術專家眼前一亮。

oltp領域中很多業務場景都會面臨事務一致性的需求,傳統業務系統常以單體應用形式存在,只需借助特有資料訪問技術和框架,結合關係型資料庫自帶的事務管理機制來實現事務一致性的要求。而目前大型網際網路應用和平台往往是由一系列分布式系統構建而成,平台和技術架構也是流派紛呈。

尤其是微服務架構盛行的今天,乙個看似簡單的功能,內部可能需要呼叫多個「服務」並操作多個資料庫或分片來實現,單一技術手段和解決方案已無法滿足這些複雜應用場景。因此,分布式系統架構中分布式事務是乙個繞不過去的挑戰。什麼是分布式事務?簡單的說,就是一次大操作由不同小操作組成,這些小操作分布在不同伺服器上,分布式事務需要保證這些小操作要麼全部成功,要麼全部失敗。

本質上來說,分布式事務就是為了保證不同資料庫或訊息系統的資料一致性。

分布式系統的事務一致性本身是乙個技術難題,沒有一種簡單完美的方案能夠應對所有場景,很難兼顧事務一致性,高效能與易用性。三者缺一,則適用場景大大受限,實用價值不高。

首先是一致性:要求在各種異常情況下保證資料是強一致的。目前最常見的一致性解決方案是最終一致性方案,通常是結合訊息中介軟體實現,在網際網路企業中廣泛使用。最終一致性實現方案比較複雜,開發、運維成本高,並且與強一致相比,業務上是受很多限制的。

其次是高效能:目前基於xa協議的兩階段提交是最常見的分布式事務解決方案,但xa類產品的典型不足是效能低下,這對於網際網路大併發需求下的多數企業是無法接受的。國外具有幾十年歷史和技術沉澱的基於xa模型的商用分布式事務產品,在相同軟硬體條件下,開啟分布式事務後吞吐經常有數量級的下降。

早期的阿里巴巴集團隨著業務高速發展,內部不斷湧現各種典型的分布式事務需求,比如阿里內部廣泛使用的tddl分庫分表所帶來的分庫間資料不一致問題,hsf服務化後所帶來的服務鏈路上資料不一致問題等。在這個過程中,各業務技術團隊利用現有中介軟體技術手段實現分布式事務處理,但這些手段都較為複雜,工作量大,對應用侵入嚴重,有些適用場景還有限制。

2023年5月開始,阿里中介軟體(aliware)內部命名為txc的分布式事務中介軟體開始研發,同年10月1.0版本發布,分布式事務功能已經具備,但效能還有侷限,只適合於吞吐量較小的場景;2023年12月,txc 2.0版本發布,相比1.0版本效能提公升10倍以上,在阿里內部多條業務線得到部署。

通過部署txc,應用只需極少的**改造和配置,即可享受分布式事務帶來的便利。txc作為阿里內部為解決分布式資料強一致性問題而研發的分布式事務中介軟體,徹底解決了分布式事務資料一致性的問題,簡單易用,先後在**,菜鳥,淘票票和村淘等多個業務的核心系統上得到部署和驗證。

從2023年年中開始,在阿里內部一直接受錘煉的分布式事務中介軟體txc在2.0版本後,隨著阿里中介軟體上雲熱潮,開始通過專有雲輸出,並得到了市場極大認可,適用場景得到進一步拓展,全面涵蓋電商、物流、金融、零售、政企、遊戲、文娛等領域。2023年2月,txc 2.0通過阿里雲對外公測,外部改名為全域性事務服務(global transaction service,簡稱gts)。

在整體架構方面,gts由三個元件組成:客戶端(gts-client),資源管理器(rm),事務協調器(gts-server)。客戶端與事務協調器間,資源管理器與事務協調器間都是通過gts分布式事務協議進行通訊。客戶端負責界定事務邊界,開啟/提交/回滾全域性事務,資源管理器負責管理資源,支援的資源包括:drds,oracle,mysql,rds,postgresql,h2,mq,後續計畫根據實際業務需求支援更多型別資源。事務協調器,也就是gts伺服器,是分布式事務處理的大腦,負責協調整個事務過程。gts事務通過rpc框架和訊息中介軟體進行事務傳遞,把整個業務呼叫鏈路或者訊息鏈路串成乙個分布式事務,極大簡化應用開發。

另外,在部分嚴苛的行業應用場景,比如金融使用者的資管專案分布式事務場景下,gts也經歷了嚴格的測試,按照使用者要求順利完成功能性、穩定性和效能測試。下圖是乙個典型效能測試場景資料,從實測資料可以看出,開啟gts(txc)分布式事務後效能下降不明顯。目前gts已經在資金業務上有實際應用,線上大量真實資料驗證了gts的高效可靠。

作為新一代企業級分布式事務服務產品,全域性事務服務gts兼顧了事務一致性,高效能與易用性。在滿足事務acid的前提下,普通配置的單伺服器就可以達到15000tps以上的超強效能(兩個小時內完成1億多筆業務),3臺8核16g記憶體虛機組成的伺服器集群可以支撐1萬tps以上的分布式事務,與同類產品相比,效能優勢明顯。另外簡單易用對業務無侵入,為廣大企業大幅降低開發成本,業務場景非常廣泛:

1、跨多分庫的分布式資料庫事務場景:關係型資料庫普遍支援事務,能夠滿足事務內的sql要麼全部成功、要麼全部失敗。但客戶從單機資料庫往分布式資料庫遷移的情況下,原有的乙個事務往往會被拆分為多個分庫上的事務。由於網路的不可靠性,容易出現部分分庫上成功,部分分庫上失敗的情況。gts結合drds可徹底解決了這一問題。

2、跨多資料庫的事務場景:複雜的業務系統經常會使用多個資料庫,甚至多種型別的資料庫,比如企業中oracle,mysql和其他關係型資料庫並存的情況時有發生。業務同時操作多個資料庫的情況下,一旦發生先提交的事務成功、後提交的事務失敗,就很難解決。gts支援各種常見關係型資料庫,並提供多資料庫間的事務保證。

3、跨資料庫系統、訊息系統的事務場景:訊息系統被廣泛地用於系統間解耦,一般先執行一段業務邏輯,執行成功會向訊息系統傳送一條訊息,用於通知或觸發下游業務。這個場景下,如果業務邏輯執行成功、訊息傳送失敗,則業務不完整;如果先傳送訊息,但執行業務邏輯失敗,同樣存在問題。gts提供了針對訊息系統以及常見關係型資料庫的操作入口,保證資料庫操作和傳送訊息要麼同時成功、要麼同時失敗。

4、跨服務的事務場景:隨著業務複雜度提公升,大多企業會對業務進行服務化改造。可能存在服務一操作mysql和drds,服務二操作oracle,要求兩個服務操作要麼同時成功、要麼同時失敗,否則會造成業務資料的不一致。gts可以很方便地進行跨多個服務的分布式事務。

據gts專案負責人姜宇介紹,「gts作為一款高效能、高可靠、接入簡單的分布式事務中介軟體產品,可與 drds、rds、oracle、mysql、postgresql、h2等資料來源,edas、dubbo及多種私有rpc框架,mq訊息佇列等中介軟體產品配合使用,可輕鬆實現分布式資料庫事務、多庫事務、訊息事務、服務鏈路級事務及各種組合。策略豐富,易用性和效能兼顧,將真正完善阿里雲中介軟體產品線。」

gts(txc)的研發依託於阿里中介軟體(aliware)團隊,中介軟體技術部是阿里巴巴集團生態系統的技術基石,為集團各大業務群提供可靠、高效、易擴充套件的技術基礎服務;並在此基礎上打造世界一流的中介軟體產品、高可用架構基礎設施和企業級網際網路架構平台,為全球企業和客戶提供服務。

from: 

破解世界性技術難題! GTS讓分布式事務簡單高效

近日,2017雲棲大會 深圳峰會如期舉行,多項阿里雲新產品對外發布。在企業級網際網路架構分會場,來自阿里中介軟體 aliware 的技術專家及合作夥伴,為現場參會嘉賓帶來最新的傳統it架構到企業級網際網路架構跨越式公升級 實現網際網路轉型的產品及解決方案。其中高階技術專家姜宇在分享中帶來的aliwa...

用choice解決世界性難題 今天吃什麼

今天吃什麼 說是有史以來困擾人類最多的問題,大概沒人會反對吧。今天吃什麼?抓鬮吧!抓鬮?這麼隨意嗎 那就讓 來幫我們科學決策吧!import random import time menu def food menu input 請輸入您的選單 記得菜名用空格隔開喲 split return men...

華人婚戀成世界性難題 世紀佳緣推 海外版產品

聽過組團相親,那你聽過 舉國相親 嗎?這一創舉正是由新加坡 積極促成,由官方機構與認證組織創辦的 spark connections 2018 活動,在乙個半月的活動週期中,為單身男女量身打造各種主題的約會活動,值得一提的是,此次活動竟然由 負責一半的經費。然而,出面鼓勵舉國相親的背後,實則是新加坡...