开发者社区> 问答> 正文

全局事务服务 GTS 常见问题有哪些?


  1. 如何开通 GTS 服务,都需要准备什么?
    首先,您需要申请一个阿里云账户。然后,您需要在阿里云的产品与服务中找到 GTS 产品,并点击进入 GTS 控制台。

    • 如果您希望使用 @TxcTransation 注解方式接入 GTS,您需要在 GTS 控制台中申请一个 GTS 分组,将这个分组 ID 按照使用要求放到代码中即可。

    • 如果您希望在 DRDS 上使用 GTS,您需要在 GTS 控制台的 DRDS 列表中为您的 DRDS 开通 GTS 服务。

  • GTS 是否支持 VPC 私有云部署?
    支持,如果需要请提工单申请。

  • GTS 服务挂掉事务还能正常回滚么?
    GTS 的 server 会记录下事务的状态并持久化,即使服务挂掉,在服务重新启动后,事务仍然能够正常回滚。

  • 建表时,列的名称可以使用 SQL 的关键字吗?
    不可以,建表时列名不能用 SQL 的关键字,如 DESC、TABLE 等。

  • GTS 部署会不会太重,客户端都依赖什么?

    • 如果您使用的是 DRDS 中的 GTS,部署时是不需要任何依赖的,因为 DRDS 和 GTS 已经深度集成,仅需一行 select last_txc_xid() 语句就能触发事务。

    • 如果您使用的是注解方式的 GTS,就需要部署 GTS 的 SDK,仅需要在 pom.xml 中加入相关几个依赖就可以,操作简单。在用户手册中,我们已经给出了一个典型的 pom.xml 案例。

  • 我已经开通了 GTS,EDAS、MQ、DRDS、RDS、MySQL,能否都加入分布式事务?
    能,GTS 具有全链路事务的能力,已经打通了 EDAS、MQ、DRDS、RDS、MySQL 之间的事务。

  • 服务 A 调用服务 B,服务 A 上加了 GTS 开启事务注解,服务 B 没有注解,那么,A 和 B 是否在同一个分布式事务中?
    A 和 B 在一个事务中。在使用 EDAS 服务事务的时候,只要客户端 A 的函数上加入了 GTS 注解,那么这个客户端 A 注解函数下面所有的被调用的服务及其子调用的服务都会加入到这个客户端 A 的事务中。

  • 开发或运维中遇到问题,希望排查 GTS 全局事务,请问 GTS 的日志记录在哪儿,怎么查看 GTS 日志?
    GTS 的事务日志名称为 txcXXXX.log,其中 XXXX 为 GTS 客户端进程的进程号,其路径为:${user.home}/logs/txcXXXX.log,其中 ${user.home}为启动 GTS 客户端的用户账户的根目录。
    查看日志时,可以按照 GTS 的全局事务 ID 去查看这个事务在该客户端都操作了哪些资源,及全局提交和回滚情况如何。

  • GTS 是否支持多机房高可用?
    GTS 支持双机房高可用。当一个机房由于断网、停电等突发状况造成了全机房不可用时,GTS 可以自动切换到备用机房继续提供服务。切换时,原机房正在执行的事务会失败且不能自动保证数据一致,但由于这个切换是瞬间执行的,那个瞬态中正在进行的事务较少,可以提工单申请 GTS 的数据不一致处理工具,帮助将仅有的几个未完成事务手工处理完毕。

  • 运行 sample 样例工程时,报错 “Exception in thread “main” com.taobao.txc.common.b.c: [can’t fetch real group name from diamond!vgroup_mapping_xxx] [10000] [unknown error]” ,怎么解决?
    首先,需要确认一下 GTS 事务分组,即报错中的 “xxx” 已经审批通过;然后确认一下样例工程是否运行在经典网络 ECS 上,本地环境和 VPC 网络 ECS 暂时都是不支持直接使用的。
  • 展开
    收起
    猫饭先生 2017-10-31 11:34:21 3187 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    GTS-分布式事务全新解决方案 立即下载
    GTS内刊《新服务》 立即下载
    GTS内刊 立即下载