本文介紹一些 GTS 的常見問題,幫助您更好地了解 GTS。

如何開通 GTS 服務,都需要準備什么?

  1. 申請一個阿里云賬戶。
  2. 在阿里云的產品與服務中找到 GTS 產品,并單擊進入 GTS 控制臺。
  3. 如果您希望使用 @TxcTransaction 注解方式接入 GTS,您需要在 GTS 控制臺中申請一個 GTS 分組,將這個分組 ID 按照使用要求放到代碼中即可。

GTS 的 TPS 數是如何計算的?

一次全局事務會話一般會包含多個分支事務。實例規格中的 TPS,指的是每秒全局事務會話次數加上分支事務次數的峰值。

GTS 中的 TPS 計量的是 GTS 每秒處理的服務請求個數。

服務請求 包括兩類:

  • 全局事務開啟請求:一個全局事務一個請求。
  • 分支事務注冊請求:全局事務是由若干分支事務組成的。全局事務鏈路中的每一個本地事務都需要注冊為全局事務的一個分支。

所以,除了全局事務的個數,全局事務中涉及的本地事務個數,是 GTS 服務規格需求的重要因素。全局事務中包含的本地事務越多,對 GTS 服務規格要求可能越高。

下面通過一個示例幫助您了解如何計算 TPS。

一個全局事務,涉及 3 個微服務(A/B/C)調用。如果每個微服務只做一個本地事務操作,則這個全局事務對 GTS 的服務請求就是:

1(全局事務開啟)+ 1(A 的分支事務注冊)+ 1(B 的分支事務注冊)+ 1(C 的分支事務注冊)= 4

如果,上述微服務中的 A 工作在 autocommit=true 的模式下,每一個 DML 操作都是一個本地事務,都要向 GTS 注冊分支。例如 A 服務的 DML 操作有 5 個,那么 A 服務向 GTS 注冊分支的請求就增加到 5 個,此時,這個全局事務對 GTS 的服務請求就是:

1(全局事務開啟)+ 5(A 的分支事務注冊)+ 1(B 的分支事務注冊)+ 1(C 的分支事務注冊)= 8

GTS 部署會不會太重,客戶端都依賴什么?

如果您使用的是注解方式的 GTS,就需要部署 GTS 的 SDK,僅需要在 pom.xml 中加入相關幾個依賴就可以,操作簡單。在用戶手冊中,我們已經給出了一個典型的 pom.xml 案例。

我開通的多個云產品能否都加入分布式事務?

能,GTS 具有全鏈路事務的能力,已經開通了 EDAS、MQ、RDS、MySQL 之間的事務。

GTS 是否支持多機房高可用?

GTS 支持雙機房高可用。當一個機房由于斷網、停電等突發狀況造成了全機房不可用時,GTS 可以自動切換到備用機房繼續提供服務。切換時,原機房正在執行的事務會失敗且不能自動保證數據一致,但由于這個切換是瞬間執行的,那個瞬態中正在進行的事務較少,可以提工單申請 GTS 的數據不一致處理工具,幫助將僅有的幾個未完成事務手工處理完畢。