GTS,讓分布式事務更簡單高效!

 

近日,云棲大會·深圳峰會如期舉行,多項阿里云新產品對外發布。在企業級互聯網架構分會場,來自阿里中間件(Aliware)的技術專家及合作伙伴,為現場參會嘉賓帶來最新的傳統IT架構到企業級互聯網架構跨越式升級、實現互聯網轉型的產品及解決方案。其中高級技術專家姜宇在分享中帶來的Aliware新產品—全局事務服務(Global Transaction Service ,簡稱GTS),在分布式事務處理上帶來的高性能和技術創新令到場參會的各路技術專家眼前一亮。

 

Aliware新成員—全局事務服務GTS技術分享現場

 

分布式事務背景

 

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

 

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

 

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

 

分布式事務三大難題:一致性、高性能和易用性

 

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

 

首先是一致性:要求在各種異常情況下保證數據是強一致的。目前最常見的一致性解決方案是最終一致性方案,通常是結合消息中間件實現,在互聯網企業中廣泛使用。最終一致性實現方案比較復雜,開發、運維成本高,并且與強一致相比,業務上是受很多限制的。

 

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

 

第三是易用性:為了滿足一致性和高性能要求,出現了一些特定場景下的分布式事務方案,但通?;嵯拗樸沒в梅?,對業務侵入性強,無法做到簡單易用,帶來更多開發成本。

 

世界級應用場景,催生世界級分布式事務解決方案

 

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

 

2014年5月開始,阿里中間件(Aliware)內部命名為TXC的分布式事務中間件開始研發,同年10月1.0版本發布,分布式事務功能已經具備,但性能還有局限,只適合于吞吐量較小的場景;2015年12月,TXC 2.0版本發布,相比1.0版本性能提升10倍以上,在阿里內部多條業務線得到部署。

 

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

 

 

順應云時代潮流,GTS應運而生

從2016年年中開始,在阿里內部一直接受錘煉的分布式事務中間件TXC在2.0版本后,隨著阿里中間件上云熱潮,開始通過專有云輸出,并得到了市場極大認可,適用場景得到進一步拓展,全面涵蓋電商、物流、金融、零售、政企、游戲、文娛等領域。2017年2月,TXC 2.0通過阿里云對外公測,外部改名為全局事務服務(Global Transaction Service,簡稱GTS)。

 

GTS總體架構圖

 

在整體架構方面,GTS由三個組件組成:客戶端(GTS-Client),資源管理器(RM),事務協調器(GTS-Server)??突Ф擻朧攣裥髕骷?,資源管理器與事務協調器間都是通過GTS分布式事務協議進行通信??突Ф爍涸鸞綞ㄊ攣癖囈?,開啟/提交/回滾全局事務,資源管理器負責管理資源,支持的資源包括:DRDS,Oracle,MySQL,RDS,PostgreSQL,H2,MQ,后續計劃根據實際業務需求支持更多類型資源。事務協調器,也就是GTS服務器,是分布式事務處理的大腦,負責協調整個事務過程。GTS事務通過RPC框架和消息中間件進行事務傳遞,把整個業務調用鏈路或者消息鏈路串成一個分布式事務,極大簡化應用開發。

 

在高可用方面,GTS支持同城容災與兩地三中心容災,可保證各種異常情況下的數據一致。在易用性方面,GTS對業務無侵入,真正做到業務與事務分離,開發者可以集中精力于業務本身。在技術創新方面,GTS也走在了行業前沿。項目負責人阿里高級技術專家姜宇(花名于皋)擁有13項分布式事務的核心技術專利,研發團隊的技術專家張松樹也有3篇專利。通過大量的專利技術,精妙的算法,與精巧的分布式事務私有協議,GTS取得了超強的性能。

 

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

 

GTS典型性能測試場景數據

 

性能優異,業務場景廣泛

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

1、跨多分庫的分布式數據庫事務場景:關系型數據庫普遍支持事務,能夠滿足事務內的SQL要么全部成功、要么全部失敗。但客戶從單機數據庫往分布式數據庫遷移的情況下,原有的一個事務往往會被拆分為多個分庫上的事務。由于網絡的不可靠性,容易出現部分分庫上成功,部分分庫上失敗的情況。GTS結合DRDS可徹底解決了這一問題。

2、跨多數據庫的事務場景:復雜的業務系統經?;崾褂枚喔鍪菘?,甚至多種類型的數據庫,比如企業中Oracle,MySQL和其他關系型數據庫并存的情況時有發生。業務同時操作多個數據庫的情況下,一旦發生先提交的事務成功、后提交的事務失敗,就很難解決。GTS支持各種常見關系型數據庫,并提供多數據庫間的事務保證。

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

4、跨服務的事務場景:隨著業務復雜度提升,大多企業會對業務進行服務化改造??贍艽嬖詵褚徊僮鱉ySQL和DRDS,服務二操作Oracle,要求兩個服務操作要么同時成功、要么同時失敗,否則會造成業務數據的不一致。GTS可以很方便地進行跨多個服務的分布式事務。

 

依托阿里中間件(Aliware),打造世界一流企業級互聯網架構平臺

 

據GTS項目負責人姜宇介紹,“GTS作為一款高性能、高可靠、接入簡單的分布式事務中間件產品,可與 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2等數據源,EDAS、Dubbo及多種私有RPC框架,MQ消息隊列等中間件產品配合使用,可輕松實現分布式數據庫事務、多庫事務、消息事務、服務鏈路級事務及各種組合。策略豐富,易用性和性能兼顧,將真正完善阿里云中間件產品線?!?/span>

 

GTS(TXC)的研發依托于阿里中間件(Aliware)團隊,中間件技術部是阿里巴巴集團生態系統的技術基石,為集團各大業務群提供可靠、高效、易擴展的技術基礎服務;并在此基礎上打造世界一流的中間件產品、高可用架構基礎設施和企業級互聯網架構平臺,為全球企業和客戶提供服務。

來源:DONEWS

上一篇: 阿里巴巴達摩院成立一年,都做了些什么?

下一篇: 最新開發者鄙視鏈出爐!

分享到: 更多
内蒙古时时计划软件手机版下载 捕鱼达人老版本2012年免费下载 双色球最简单规律技巧 云南时时历史开奖号码查询今天 双色球技巧方法大全 金百博时时彩 彩票网上投注代理平台 pk10平刷不加倍教程 在手机上炸金花有什么技巧 幸运飞艇全天免费计划网页 365天天彩票app下载 全民炸金花下载手机版 赛车单双大小不输方法技巧 通比牛牛和上庄牛牛的区别 打鱼游戏 二人斗地主让牌什么意思