06.11 五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

在企業級互聯網架構專場中,來自阿里巴巴的中間件技術專家厲啟鵬(寈峰)為現場的聽眾帶來了題為《GTS-分佈式事務全新解決方案》的精彩分享。在本次分享中,他重點闡述了GTS如何幫助解決分佈式事務問題,包括產品GTS的基本原理、核心優勢、應用場景等;介紹了GTS的商業化情況,包括應用案例、商業化後給用戶帶來的價值提升等。

以下內容根據現場分享整理而成。

產品簡介

GTS是行業內的第一款也是唯一的一款,專注於解決分佈式事務問題的中間件。GTS被定義為一站式的分佈式事務解決方案,立足點是解決所有的事務問題。應用開發中遇到的事務問題大致分為四個方面:跨庫事務、服務化事務、消息事務、混合事務。

GTS與其他解決方案對比

在GTS出現之前,事務問題的解決方案主要有XA方案,補償方案,消息方案等。

·XA方案:優點為接口標準化。缺點是阻塞協議,影響系統吞吐和可伸縮性,性能不理想,很難滿足互聯網大併發需求,缺乏容錯機制。

·補償方案:優點為符合業務需求。缺點是實現複雜,各種異常情況難於處理,要求每個方法實現一個反向的回滾接口,運維成本高,擴現移植性不理想。

·消息方案:優點為實現相對簡單。缺點是要求應用與消息系統緊耦合,增加開發成本,要求業務實現冪等。最終一致性,適用場景受限。

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

XA方案是在資源層面解決分佈式事務的問題。補償方案和消息方案是在應用層面解決事務問題。GTS既不在資源層面也不在應用層面,而是在中間件的層面解決事務問題。這是GTS和其他三個方案的本質不同點。在中間件層面解決有幾個優勢:第一,可以解決跨資源的事務問題,這個是XA方案很難做到的。如果業務系統需要訪問多個資源,比如多個mysql數據庫同時需要訪問MYSQL以及HBASE,這個過程產生的事務問題,GTS可以解決。第二,可以解決服務化的事務問題,而且和應用是松耦合的,通過使用GTS微服務不需要嵌入解決事務的邏輯,微服務會更加簡單、輕量化。第三,GTS對應用的侵入性非常低,便於應用的擴展和移植。

GTS優勢

GTS的優勢總結起來包括四個方面:

·完整解決方案。可以解決分佈式數據庫、跨數據庫、服務化、消息系統場景下的分佈式事務問題。

·侵入性極低。一行註解即可實現事務接入,也提供 API 接入模式使用門檻低,節省開發和運維成本。

·性能超強。高達傳統分佈式事務 10 倍性能,4c8g集群可達1.5萬TPS。熱點數據高效處理,無懼數據衝突。

·高可用。支持應用宕機、節點故障等各類異常情況下均可保持數據嚴格一致,支持同城主備及兩地三中心部署。

產品歷史

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

GTS於2014年正式立項,由阿里高級技術專家於皋牽頭研發,所謂5年磨一劍。到2015年12月份在阿里內部各業務線大規模應用。2017年2月份在阿里雲公測。目前GTS擁有16項核心專利,其中包括4項國際專利。阿里巴巴的用戶現在主要有三類:專有云用戶、公有云用戶、阿里內部用戶。

GTS於5月21日正式商用,首發1月內購買,低至七折。GTS 實例規格分為 5 TPS(免費版)、20 TPS、100 TPS、200 TPS、500 TPS、2000 TPS 和 5000 TPS。

功能架構

總體架構

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

上圖為總體架構圖,左側為GTS服務端,為三個節點的組成的集群;右側為客戶端。

GTS事務模型

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

GTS的全局事務是由若干個分支事務構成的。

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

GTS的客戶端包含兩部分:GTS Client和RM。在全局事務開始時,GTS Client會連接服務端,服務端會返回xid給Client;Client端將xid傳輸給涉及到全局事務的所有RM;之後,全局事務中的每一個RM需要開啟一個分支事務,RM需要向服務端獲取一個分支事務的ID號;之後,RM會彙報狀態給服務端,服務端會知道每一個分支事務的執行情況,然後根據情況返回給Client端,以完成數據提交工作。

GTS與微服務集成架構

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

GTS與微服務框架集成的架構如上圖所示。業務應用在調用微服務時首先會通過GTS Server發起一個全局事務,獲取到全局事務ID後。業務應用進行服務調用,同時會將全局事務ID,也就是xid傳輸到每個服務端。業務應用在調用a、b之後如果調用微服務c的時候出現了異常,這個時候業務應用會通知服務端,由服務端驅動微服務的RM進行服務的回滾。這個回滾對服務是透明的。

容錯機制

GTS允許服務端出現宕機情況,它可以保證這種情況下事務的一致性。如果應用是多機部署的,在應用節點宕機的情況下GTS仍然可以保證數據的一致性。

·服務節點宕機

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

如上圖所示,在回滾的過程中,S3出現宕機情況之後,App1連接不上S3。此時,S1裡面有S3的備用信息,那麼App1會自動連接S1,由S1協助完成App1剛剛沒有完成的回滾的工作。

·應用節點宕機

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

如上圖所示,App2是客戶端發起了回滾操作,如果回滾的過程中app1所在的節點宕機,這個時候,GTS服務端會驅動其他app1的RM完成回滾。

擴展機制

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

GTS支持橫向擴展。由上圖可以看出,一個邏輯組可以映射不同的物理組,而且不同的邏輯組可以映射到同一個物理組。

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

在應用節點非常多的情況下,可以通過不同的邏輯組去映射不同的物理結點,以達到橫向擴展的效果。

AT&MT

GTS提供AT模式(自動模式)和MT(手動)兩種模式。AT模式可以覆蓋90%以上的場景,也是我們首先推薦使用的模式。可以自動回滾、對業務無侵入。MT模式是GTS對TCC的一種支持,主要適用於多個系統集成的場景。兩種模式可以組合使用。

應用場景

解決跨數據庫的事務問題

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

數據庫可以是同構數據庫,異構數據庫,關係數據庫,非關係數據庫等。GTS可以保證多種情況下的事務一致性。

解決微服務調用的事務問題

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

微服務經常會遇到各種事務問題,GTS非常適合解決這樣的問題。比如應用嵌套調用微服務等,GTS都可以保證事務的一致性。

解決多系統集成的事務問題

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

上圖為用戶的案例。放款應用調用金融系統中的信用核心的服務去完成系統評估,調用風控中心服務為客戶做風險評估,調用額度中心生成放款額度,最後調用銀行的支用服務和合法校驗服務,完成放款的操作。

解決混合事務問題

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

當應用調用多個服務時,GTS也可以解決這樣的混合事務問題。

實踐操作

AT模式

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

上圖所示例子為轉賬操作。

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

如上圖所示,配置文件裡需要加兩個東西,第一個是GTS提供的一個數據源,第二個是需要加TxcTransactionScaner

MT模式

五年磨一劍、16項核心專利,GTS為分佈式事務帶來哪些全新定義?

MT模式是調用第三方接口,或者是在不同系統集成的時候可能用到的一種模式。

在不同的階段,GTS會調用不同的方法,當方法調用失敗的時候GTS會有一定的策略去處理,保證方法的正確實行。


分享到:


相關文章: