本文介绍一些 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 的数据不一致处理工具,帮助将仅有的几个未完成事务手工处理完毕。