該樣例工程介紹 AT 模式下,非 Spring 框架下如何通過 GTS 保證跨數據庫轉賬的分布式事務的一致性。

前提條件

在使用樣例前,請先完成以下工作:
  • 準備兩個 RDS 實例,用戶創建數據庫。
  • 準備一個 ECS 實例,用于部署本樣例。

樣例邏輯說明

從 A 賬戶向 B 賬戶轉賬,如果為負值則拋出應用異常,導致全局事務回滾。

搭建樣例

  1. 在兩個數據庫分別執行 txc_sample1.sqltxc_sample2.sqltxc_undo_log.sql,創建 txc_undo_log 表。
  2. 下載樣例 txc-yun-sample并上傳到 ECS 上。
  3. 在 IDE 中修改樣例配置。
    1. 找到并打開 SpringFreeClient.java 文件,在 txcTransactionScaner 方法中修改 GTS 的邏輯組名。
      事務邏輯組名需要使用包含 ID 和 Region 信息的全名,例如 gtstest.432242345522.HZ
    2. 找到并打開 SpringFreeClient.java 文件,將 accessKeysecretKey 的值修改為您實際賬號的值。
      說明 請使用主賬戶的Access Key ID和Access Key Secret。如果使用RAM子賬戶的Access Key ID和Access Key Secret,需要先使用主賬戶對子賬戶進行授權。
    3. 找到并打開 SpringFreeClient.java 文件,將兩個數據庫的 urlusernamepassword 的值修改為您實際使用的值。
    Java 源代碼在 /sample-txc-simple-springfree/src/main/java/com/taobao/txc/tests 目錄下,可以根據業務需求修改。
  4. 運行 mvn package -Dmaven.test.skip=true –Ptest 命令,生成 JAR 包 pay.jar
  5. sample-txc-simple-springfree 目錄下執行 build.sh 編譯本工程。

結果驗證

編譯完成后,在 sample-txc-simple-springfree/client/bin 目錄下執行 run.sh,可以看到運行結果。