之前一直在学习Spring Cloud,到最后遇到了分布式事务的问题,一直没有想好怎么解决,直到知道了阿里的GTS全局分布式事务中间件,就赶紧申请开通试试。
阿里云的示例代码可以在阿里云上下载 案例路径
官网上案例是需要RDC和ECS的,对于很多人来说可能没有,我这个案例是直接在本机环境下,只需要电脑能上公网即可。
我就按照官网的次序来介绍了0.0
准备环境
一定要注意,创建表时表名一定要大写,阿里云上表是不区分大小写的,但是我们本机电脑一般都是区分的,所以创建所有表的时候记得改表名,建表语句在官网案例里
1.一台能上公网的电脑即可
2.需要两个本地数据库,均需要执行 txc_undo_log.sql 创建TXC_UNDO_LOG 表。
3.订单数据库需要执行 txc_sample_springcloud.sql 中的相关命令创建 ACCOUNT表。
4.库存数据库需要执行 txc_sample_springcloud.sql 中的相关命令创建 ACCOUNT 表。
编译工程
我编写的案例代码已经上传到我的github上 ,可以下载下来使用
首先得先申请开通权限,然后就可以到这个页面了,首先先创建一个事务分组,随便起个名字就行,把鼠标放到2处的myTransaction上面,就可以看到你真正的分组名称,我的是myTransaction.1736621601966666.BJ。等会填的是这个较长的这个别填错了。另外最重要的是一定要让阿里的技术小哥哥帮你把你的分组移动到公网上!!!!!!!!!
然后点3处,设置你的访问密钥和私钥。
下载下来代码后,我们先来修改一下配置文件打开 eureka-provider 工程里的application.properties文件,填好数据库连接信息, 然后再添上你刚才配置好的访问密钥和私钥。然后再Config类里把你的逻辑组名签上去,
接下来eureka-provider2 工程也是同上,不过记得填写不同的数据库啊!
eureka-consumer工程同上
这样就配置好了。
接下来我们直接启动4个工程,先启动eureka-locator服务注册中心,再把上面3个项目启动可以。直接主函数启动就行,
案例测试
访问consumer工程的controller地址为 localhost:9000/transfer
这时候就可以查看数据库,发现已经转账成功。
随意加个bug,就可以看到不成功了!!!