您可以通過(guò)入門基礎(chǔ)樣例快速體驗(yàn)如何使用 GTS 實(shí)現(xiàn)分布式事務(wù)。
基礎(chǔ)樣例簡(jiǎn)介
樣例工程模擬了資金轉(zhuǎn)賬的應(yīng)用。包含 2 個(gè)數(shù)據(jù)源:
- 賬戶 A 數(shù)據(jù)源:存儲(chǔ) A 的資金。
- 賬戶 B 數(shù)據(jù)源:存儲(chǔ) B 的資金。
通過(guò) GTS 管理的分布式事務(wù),保障賬戶 A 和 B 之間交易的一致性。
步驟一:下載樣例工程
樣例工程詳情請(qǐng)參見(jiàn)gts-sample-simple。
說(shuō)明 如果需要使用舊版入門樣例,請(qǐng)參見(jiàn)舊版樣例簡(jiǎn)介。
步驟二:構(gòu)建樣例工程
- 初始化數(shù)據(jù)庫(kù)。
- 數(shù)據(jù)庫(kù)依賴 MySQL,準(zhǔn)備一個(gè)可用的 MySQL 環(huán)境(也可以是阿里云的 RDS)。
- 建立兩個(gè)用于運(yùn)行樣例的數(shù)據(jù)庫(kù),分別執(zhí)行工程中的 init-a.sql 和 init-b.sql 腳本,建立相關(guān)表。
- 構(gòu)建工程。
- 構(gòu)建工程依賴 Maven,準(zhǔn)備一個(gè)可用的 Maven 環(huán)境。
- 進(jìn)入樣例工程的根目錄,執(zhí)行 build.bat (Windows)或 build.sh(Linux)腳本。
運(yùn)行成功后 common/lib 目錄下會(huì)生成 GTS 的 SDK 包,包括:- 客戶端主包:txc-client-${gts.sdk.version}.jar
- Spring Cloud 原生支持包:txc-client-springcloud-${gts.sdk.version}.jar
步驟三:導(dǎo)入樣例工程到 IDE
為了方便運(yùn)行和理解,建議您把工程導(dǎo)入到 IDE 中。
步驟四:運(yùn)行樣例工程
運(yùn)行樣例工程中 Application 的 Main 方法,結(jié)合代碼邏輯,查看 console 的日志輸出。
關(guān)鍵配置和運(yùn)行機(jī)制解讀
application.properties
中,以 spring.cloud.txc 為前綴的一系列參數(shù)是 GTS 關(guān)鍵配置,說(shuō)明如下:
- GTS 全局事務(wù)調(diào)用鏈路上的每個(gè)服務(wù)都要進(jìn)行這些配置,例如樣例中的 Business/Storage/Order/Account。
- spring.cloud.txc.txcAppName:每個(gè)服務(wù)自定義一個(gè)全局唯一的應(yīng)用名。
- spring.cloud.txc.txcServerGroup:GTS 服務(wù)實(shí)例(事務(wù)分組)名。
- 在本地運(yùn)行通過(guò)公網(wǎng)訪問(wèn) GTS 服務(wù)時(shí),請(qǐng)使用公共的實(shí)例 txc_test_public.1129****3855****.QD 并配合使用下面的 spring.cloud.txc.url 配置。
- 在正式環(huán)境 ECS 上運(yùn)行時(shí),請(qǐng)使用您訂購(gòu)的 GTS 服務(wù)實(shí)例全名,并配合使用下面的 spring.cloud.txc.accessKey 和 spring.cloud.txc.accessKey 配置。
- spring.cloud.txc.url:公網(wǎng)訪問(wèn) GTS 服務(wù)的接入地址,固定值
https://test-cs-gts.aliyuncs.com
。這個(gè)配置僅在本地公網(wǎng)訪問(wèn)時(shí)需要。 - spring.cloud.txc.accessKey和spring.cloud.txc.secretKey:在 ECS 上正式運(yùn)行,這里配置您 GTS 服務(wù)實(shí)例使用者的 AccessKey ID 和 AccessKey Secret 用于鑒權(quán)。默認(rèn)是使用訂購(gòu) GTS 服務(wù)實(shí)例的用戶(即實(shí)例全名中間部分賬號(hào)ID 對(duì)應(yīng)用戶)的 AccessKey ID 和 AccessKey Secret。也可以使用 RAM 授權(quán)的用戶 AccessKey ID 和 AccessKey Secret,具體方法請(qǐng)參見(jiàn)為RAM用戶授權(quán)事務(wù)分組。