天天看點

五年磨一劍、16項核心專利, GTS為分布式事務帶來哪些全新定義?産品簡介功能架構應用場景實踐操作

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

數十款阿裡雲産品限時折扣中,

趕快點選這裡 ,領劵開始雲上實踐吧! 直播視訊回顧 PPT下載下傳請點選 以下内容根據現場分享整理而成。

産品簡介

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

GTS與其他解決方案對比

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

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

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

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

五年磨一劍、16項核心專利, GTS為分布式事務帶來哪些全新定義?産品簡介功能架構應用場景實踐操作

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

GTS優勢

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

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

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

·性能超強。高達傳統分布式事務 10 倍性能,4c8g叢集可達1.5萬TPS。熱點資料高效處理,無懼資料沖突。

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

産品曆史

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會有一定的政策去處理,保證方法的正确實行。