全局事務服務GTS(Global Transaction Service)用于實現分布式環境下,特別是微服務架構下的高性能事務一致性。可以與RDS、MySQL、PostgreSQL等數據源,Spring Cloud、Dubbo、HSF及其他RPC框架,MQ消息隊列等中間件產品配合使用,輕松實現分布式數據庫事務、多庫事務、消息事務、服務鏈路級事務及各種組合。

為什么需要全局事務服務

一個完整的業務往往需要調用多個子業務或服務,隨著業務的不斷增多,涉及的服務及數據也越來越多,越來越復雜。傳統的系統難以支撐,出現了應用和數據庫等的分布式系統。分布式系統又帶來了數據一致性的問題,從而產生了分布式事務。

產品架構

分布式事務是指事務發起者、資源管理器、事務協調者及資源分別位于不同分布式系統的不同節點之上。

GTS的架構如下圖所示。

GTS 架構
  • GTS服務端:即事務協調器。負責分布式事務的推進,管理事務生命周期。
  • GTS客戶端:即事務發起者。通過事務協調器,開啟、提交、回滾分布式事務。同時還包含部分資源管理器組件,負責管理和控制資源,與GTS服務器進行交互。
  • 服務框架:GTS可以和服務框架配合使用,管理服務框架中的事務。服務框架可以集成資源管理器組件,管理和控制資源。
  • 資源:包括RDS、DRDS 5.2.x、Oracle 19c、MySQL數據庫,以及MQ消息事務。
說明 服務端的GTS相關配置通過內部組件進行下發或同步。

在單機數據庫下很容易維持事務的ACID(Atomicity、Consistency、Isolation和Durability)特性,但在分布式系統中并不容易,GTS可以保證分布式系統中分布式事務的ACID特性。