您可以通过入门基础样例快速体验如何使用 GTS 实现分布式事务。

基础样例简介

样例工程模拟了资金转账的应用。包含 2 个数据源:

  • 账户 A 数据源:存储 A 的资金。
  • 账户 B 数据源:存储 B 的资金。

通过 GTS 管理的分布式事务,保障账户 A 和 B 之间交易的一致性。

步骤一:下载样例工程

样例工程详情请参见gts-sample-simple

说明 如果需要使用旧版入门样例,请参见旧版样例简介

步骤二:构建样例工程

  1. 初始化数据库。
    1. 数据库依赖 MySQL,准备一个可用的 MySQL 环境(也可以是阿里云的 RDS)。
    2. 建立两个用于运行样例的数据库,分别执行工程中的 init-a.sqlinit-b.sql 脚本,建立相关表。
  2. 构建工程。
    1. 构建工程依赖 Maven,准备一个可用的 Maven 环境。
    2. 进入样例工程的根目录,执行 build.bat (Windows)或 build.sh(Linux)脚本。
    运行成功后 common/lib 目录下会生成 GTS 的 SDK 包,包括:
    • 客户端主包:txc-client-${gts.sdk.version}.jar
    • Spring Cloud 原生支持包:txc-client-springcloud-${gts.sdk.version}.jar

步骤三:导入样例工程到 IDE

为了方便运行和理解,建议您把工程导入到 IDE 中。

步骤四:运行样例工程

运行样例工程中 Application 的 Main 方法,结合代码逻辑,查看 console 的日志输出。

关键配置和运行机制解读

application.properties中,以 spring.cloud.txc 为前缀的一系列参数是 GTS 关键配置,说明如下:

  • GTS 全局事务调用链路上的每个服务都要进行这些配置,例如样例中的 Business/Storage/Order/Account。
  • spring.cloud.txc.txcAppName:每个服务自定义一个全局唯一的应用名。
  • spring.cloud.txc.txcServerGroup:GTS 服务实例(事务分组)名。
    • 在本地运行通过公网访问 GTS 服务时,请使用公共的实例 txc_test_public.1129****3855****.QD 并配合使用下面的 spring.cloud.txc.url 配置。
    • 在正式环境 ECS 上运行时,请使用您订购的 GTS 服务实例全名,并配合使用下面的 spring.cloud.txc.accessKeyspring.cloud.txc.accessKey 配置。
  • spring.cloud.txc.url:公网访问 GTS 服务的接入地址,固定值 https://test-cs-gts.aliyuncs.com 。这个配置仅在本地公网访问时需要。
  • spring.cloud.txc.accessKeyspring.cloud.txc.secretKey:在 ECS 上正式运行,这里配置您 GTS 服务实例使用者的 AccessKey ID 和 AccessKey Secret 用于鉴权。默认是使用订购 GTS 服务实例的用户(即实例全名中间部分账号ID 对应用户)的 AccessKey ID 和 AccessKey Secret。也可以使用 RAM 授权的用户 AccessKey ID 和 AccessKey Secret,具体方法请参见为RAM用户授权事务分组