在分布式中,传统的注解@Transactional会失效,于是我尝试使用@GlobalTransactional来实现分布式事务管理
在我的项目我使用docker搭建nacos,mysql8.0,sentinel,seata
再此期间我借鉴如下的内容
黑马的centos7的安装
地址:Linux环境搭建 - 飞书云文档
https://b11et3un53m.feishu.cn/wiki/FJAnwOhpIihMkLkOKQocdWZ7nUc
黑马的docker安装
安装Docker - 飞书云文档
https://b11et3un53m.feishu.cn/wiki/Rfocw7ctXij2RBkShcucLZbrn2d其中Linux环境镜像源有问题,问题是
2024年6月30日,CentOS 7正式结束生命周期(EOL),官方停止维护支持。许多用户发现,原本依赖的默认镜像源(如mirrorlist.centos.org)已无法访问,导致yum安装失败并报错Could not resolve host。本文将深入分析问题根源,并提供一键修复方案、镜像源替代方案以及长期系统迁移建议,助你快速恢复系统功能。
其中我通过这篇文解决了问题:
《CentOS 7 镜像源失效终极解决方案(2024年更新)》——生命周期终止后的镜像修复与替代方案_解决centos镜像源不可用导致的下载安装软件失败的通病 原-CSDN博客
然后还需要下载jkd1.8 mysql8.0,教程如下Linux系统CentOS 7.6 安装 JDK1.8 详细步骤_centos7.6在线安装jdk1.8-CSDN博客
Linux系统CentOS 7.6 Docker 安装 MySQL8.0 详细步骤_linxu下docker部署mysql8.0.34-CSDN博客
然后需要搭建nacos,也是参考黑马的教程
在这里,我刚开始是想搭建nacos集群的,但是网上的教程大多数是高版本的nacos的集群,高版本的会nacos配置多了两个端口,麻烦很多,搭了1整天,始终还是报错,找不到原因,而且springcloud会涉及到很多版本的问题,于是我转为单体nacos,继续使用黑马的提供的版本,具体版本兼容资料在下方
版本发布说明-阿里云Spring Cloud Alibaba官网
再就是整合springcloud,实现分布式项目,因为黑马的教程太长,我以前看过一些,原理大概都懂,只是没有实操,于是找了个1小时左右的快速搭建项目的教程,感觉他的教程也挺详细的,适合我,b站博主 (幽幽Ushio)
视频后面需要docker搭建了sentinel,我找到的教程如下
Sentinel(二)Docker搭建Sentinel 控制台环境搭建及使用介绍-CSDN博客
由于我的docker拉不到sentinel的镜像源,我下载了jar,上传linux配置了镜像,教程如上,注意改为自己合适的版本
最后我需要搭建seata
教程也附上:
Docker 部署 Seata (图文并茂超详细)_docker seata-CSDN博客
注意版本
做到这里,我开始尝试@GlobalTransactional注解的使用,但是服务却启动不了,报了Error creating bean with name 'globalTransactionScanner' defined in class path resource,然后我再讲报错原因发给ai,尝试多个方法后,终于解决了,问题我的jdk版本是19,seate1.5.1不适配,需要升级

以上就是解决办法。
项目使用@GlobalTransactional注解的业务是抢票业务,我的业务是在先票务服务中删除数量,然后再订单服务中生成订单,如何这时订单服务挂了,库存就会删除,而订单却也没生成出来。使用注解后也解决了这个问题,后面我将在尝试seata四大事务处理方案,
我写这篇文章的意义是记录我在实现项目中遇到的错误,这项目从0搭建起来也花费了大量精力,主要是docker搭建遇到了很多问题,各种版本兼容问题,也希望这篇文章对一些人有些作用,至少减少找解决方案的时间。
755

被折叠的 条评论
为什么被折叠?



