GTS SDK 2.8.31 版本开始,GTS 全面支持原生 Spring Cloud 应用,包括 RestTemplate 和 Feign 两种方式。
前提条件
- 数据库依赖 MySQL,准备一个可用的 MySQL 环境(也可以是阿里云的 RDS)。
- 构建样例工程依赖 Maven,准备一个可用的 Maven 环境。
样例简介
该样例模拟了一个用户订购商品的业务系统,包含 3 个微服务:
- Storage:库存服务,扣减指定商品的库存数量。
- Order:订单服务,根据采购请求生成订单。
- Account:账户服务,从用户账户中扣减金额。
订购商品的业务流程如下图所示:

- Business 开启一个 GTS 管理的全局事务。
- Business 调用 Storage 和 Order。
- Order 调用 Account。
GTS 将保障整个服务调用链路上的数据一致性。
步骤一:下载样例工程
样例工程详情请参见 Spring Cloud 原生支持样例源代码。
步骤二:构建样例工程
步骤三:导入样例工程到 IDE
为了方便运行和理解,建议您把工程导入到 IDE 中。
步骤四:运行样例工程
关键配置和运行机制解读
application.properties
中,spring.cloud.txc
前缀的一系列配置是 GTS 关键配置,说明如下:
- GTS 全局事务调用链路上的每个服务都要做这些配置,例如样例中的 Business/Storage/Order/Account。
spring.cloud.txc.txcAppName
:为每个服务定义一个全局唯一的名字。-
spring.cloud.txc.txcServerGroup
:GTS 服务实例名。- 在本地运行通过公网访问 GTS 服务时,请使用公共的实例
txc_test_public.1129361738553704.QD
并配合使用下面的spring.cloud.txc.url
配置。 - 在正式环境 ECS 上运行时,请使用您订购的 GTS 服务实例全名,并配合使用下面的
spring.cloud.txc.accessKey
和spring.cloud.txc.accessKey
配置。
- 在本地运行通过公网访问 GTS 服务时,请使用公共的实例
spring.cloud.txc.url
:公网访问 GTS 服务的接入地址,固定值https://test-cs-gts.aliyuncs.com
。这个配置仅在本地公网访问时需要。spring.cloud.txc.accessKey
和spring.cloud.txc.secretKey
:在 ECS 上正式运行,这里配置您 GTS 服务实例使用者的 AccessKey ID 和 AccessKey Secret 用于鉴权。默认是使用订购 GTS 服务实例的用户(即实例全名中间部分账号ID 对应用户)的 AccessKey ID 和 AccessKey Secret。也可以使用 RAM 授权的用户 AccessKey ID 和 AccessKey Secret,具体方法请参见为 RAM 用户授权事务分组。