GTS 已經全面兼容和支持開源分布式事務 Seata,實現與 Seata 的協議兼容,支持使用 Seata 的應用無縫遷移到云上,基于 GTS 提供的服務高效運行。
Seata 簡介
Simple Extensible Autonomous Transaction Architecture(Seata)是一款開源的分布式事務解決方案,致力于提供高性能和簡單易用的分布式事務服務。
2019 年,基于 GTS 的技術積累,阿里巴巴發起了開源項目 Seata。
2020 年 2 月,基于 Seata 項目 GA 后的版本,GTS 實現與 Seata 的協議兼容,支持使用 Seata 的應用無縫遷移到云上,基于 GTS 提供的服務高效運行。
分布式事務框架和事務模式
GTS 和 Seata 定義的分布式事務框架是完全一致的,詳情請參見分布式事務框架和事務模式。
TM、RM 和應用部署在一起,應用根據業務需求,選擇合適的分布式事務模式來解決數據一致性問題。
無論使用哪處模式,都離不開一個穩定高效的 TC 提供服務。這些服務包括(但不限于):
- 記錄全局事務狀態
- 記錄事務分支的注冊
- 驅動事務分支進行最終的提交或回滾
- 事務鏈路監控
- 異常事務的恢復
- 全局事務超時檢測
- 全局事務間隔離機制
分布式事務的協調機制被定義為一項標準化的服務,獨立部署和運維,給應用的分布式系統提供事務服務。
協議和架構
基于事務框架定義的事務協議如下圖所示。
Seata 的分布式事務框架源自 GTS,二者的底層架構和事務協議是完全一致的。
- GTS 把 TM 和 RM 的實現統一打包到 GTS SDK(GTS Client) 中。
- GTS 服務端(GTS Server)就是 TC 的一個高可用實現。
依托于阿里云的基礎設施,GTS Server 以多副本、高可用集群形態部署,提供高質量的事務協調服務。
將 Seata 應用遷移到 GTS
架構和協議層面一致,使得 GTS 可以很自然地提供對 Seata 應用的事務協調支持。只要實現具體網絡通信機制上的兼容適配,就可以完整支撐 Seata 應用運行在 GTS 服務之上。
Seata 應用遷移到云上使用 GTS 服務不需要做任何編程改造,僅僅是把自運維的 Seata 的 TC Server 替換為 GTS 提供的高性能、高可靠、高可用的云服務。
GTS 的 SDK 2.9.0 版本支持基于 Seata 的應用使用 AT 模式,運行在 GTS 服務上。詳情請參見 Seata 應用樣例。