微服务架构下分布式事务解决方案——阿里GTS

今天主要讲解阿里的GTS分布式事务的使用。这里以阿里云上的demo为例讲解。demo案例的描述有一些问题。这篇文章主要针对案例里的问题做讲解。还有案例的运行流程做讲解

sample-txc-simple:最简的 GTS 样例工程

该工程给出了一个最少依赖的 GTS 案例,GTS 使用入门必看。您可以基于 sample-txc-simple 样例工程,分别在阿里云网络及公网中搭建。


工程地址 点此下载
案例从阿里云拉下来将sample-txc-simple项目导入到idea中格式如下
在这里插入图片描述
此时我们按照阿里云给的提示本地运行的话会报错如下

PreparedStatementCallback; uncategorized SQLException for SQL [update user_money_a
 set money = money - ?]; SQL state [null]; error code [0]; com.taobao.txc.common.b
 .d: [xid:11.193.82.112:8091:249323421]get tablemeta failed; nested exception is
  java.sql.SQLException: com.taobao.txc.common.b.d: [xid:11.193.82.112:8091:
  249323421]gettablemeta failed

这个错是因为我们使用的数据库是阿里云上的数据库,此时你需要配置这些变量

    <!---阿里云环境下:GTS Scanner配置方式-->
<!--    <bean class="com.taobao.txc.client.aop.TxcTransactionScaner">-->
<!--        <constructor-arg value="myapp"/>&lt;!&ndash; 应用自定义的标识 &ndash;&gt;-->
<!--        <constructor-arg value="mygroup.xxxx.xx"/>&lt;!&ndash; 事务分组(全名) &ndash;&gt;-->
<!--        <property name="accessKey" value="xxx"/>-->
<!--        <property name="secretKey" value="xxx"/>-->
<!--    </bean>-->

如果你是本地运行的话,需要使用本地的数据源配置,不能配置阿里云的数据库

如果你修改配置了还是运行不起来的话,你可以尝试将txc-client发布到本地仓库

mvn install:install-file -Dfile=txc-client-2.8.18.jar -DgroupId=com.taobao.txc -DartifactId=txc-client -Dversion=2.8.18 -Dpackaging=jar

修改工程中的pom.xml
将txc-client的jar包路径由

<dependency>
    <groupId>com.taobao.txc</groupId>
    <artifactId>txc-client</artifactId>
    <version>${txc-version}</version>
    <scope>system</scope>
    <systemPath>${basedir}/../lib/${txc-sdk-package-name}</systemPath>
</dependency>

改为

<dependency>
    <groupId>com.taobao.txc</groupId>
    <artifactId>txc-client</artifactId>
    <version>${txc-version}</version>
</dependency>

此时运行结果如下
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值