记录一次复杂程序的启动
秒杀程序学习-环境部署
背景
观摩QiuRunze大佬的秒杀系统代码,尝试运行部署基础版本,代码Github链接https://github.com/qiurunze123/aircrafttravel
需要的程序
整个过程有
mysql、mysqlWorkBench、Redis、RedisDeskTopManager、Zookeeper、Erlang、RabbitMQ、Docker等程序
结果
过程准备
下载代码zip
按照readme文件使用网盘下载安装包
过程-mysql
安装mysql及mysql workbench
测试链接,用户名及密码都是root
导入sql文件后如下图
过程-redis
运行exe安装好后,打开windows服务,启动Redis服务(在win10搜索serv推荐就是,redis可能已经启动好了)
打开RedisDeskTopManagement测试连接,默认端口即是
连接成功如下图
过程-RabbitMQ
我没使用网盘下载的安装包,个人习惯
使用Docker容器运行的RabbitMQ
详细安装过程中间件学习-RabbitMQ_RobertLikeDurian的博客-CSDN博客
BTW(小插曲,RabbitMQ端口被占用我就将61613改成50013,改成没被占用的即可)
过程-zookeeper
解压后配置好后
详细配置连接Zookeeper 在Windows下的安装过程及查看_xhuiting的博客-CSDN博客_windows安装zookeeper
在cmd中输入zkServer即可运行
如下图已经运行
修改
修改原因
由于程序发布于约2017年,其中mysql使用的是5版本
而我使用的是8版本的
需要修改如下图的version,及jdbc中的driver.cj
修改connector-version
修改timeZone
否则报错乱码
尝试运行SpringBoot
运行AirCraftApplication后
访问localhost 8080/login/to_login
登录显示手机号不存在并且程序报错
输入手机号来源miaosha_user这张表,密码123456
报错内容如下
分析发现sql并未取回信息,但却是输入了parameter
修改MiaoShaUserDAO
发现条件写错,将nickname修改为id
程序即可运行
修改后续20211020
点击立即秒杀按钮后依然报错,原因是在controller中依然有getNickName方法没有改正,分析过程如下
没有发现报错输出,这让我特别难受,但是看到日志输出到这个Controller中就不再输出,猜到应该是这里出现了问题
Debug单步执行到这里出现报错
报错内容为类型错误就是user1不是数字Long类型
可以看到在这个方法需要的是数字而不是String,即需要getId而不是getNickName
修改后出现报错,在RabbitMQImpl中出现
同样根据报错内容修改即可
最后可以在数据库中看到已经秒杀成功,但是前端提示秒杀失败,继续Debug执行发现miaoshaController中miaoshaResult方法中依然存在两处getNickName
修改后终于秒杀成功