开门见山的说,Java校招面试界有一个贼拉出名的项目,无人不知无人不晓。那就是传说中的互联网Java秒杀系统
:miaosha
。对,就是这么程序员的命名。
可以看到,迄今为止,这个项目已经有13.3k的星星和3.1k的fork。
那么作为一个准备校招的本科生小白,当然对这个项目觊觎不已,但是由于时间不足一直无法染指。
正好趁着这段时间赋闲在家,来讲这个项目层层剥离,给各位观众老爷们娓娓道来。
计算机科班本科三年级及以上及同等学力
类别 | 工具 | 可选 | 说明 |
---|---|---|---|
IDE | IDEA | 无 | 集成开发环境 |
Git | Git | 无 | 版本控制,代码托管 |
数据库 | Mysql | 无 | 数据库 |
数据库管理工具 | Navicat | 其他数据库管理工具 | 可视化管理数据库 |
远程连接工具 | Xshell | Putty | 连接服务器 |
远程文件工具 | Xftp | 无 | 给服务器发送文件 |
服务器系统 | CentOS7 | Linux均可 | 有条件上VPS,无条件用虚拟机 |
https://github.com/qiurunze123/miaosha
https://gitee.com/Agaogao/miaosha/blob/icanuser/doc/%E7%AC%AC%E4%B8%80%E9%83%A8%E5%88%86%E7%A7%92%E6%9D%80%E7%B3%BB%E7%BB%9F%E8%BF%90%E8%A1%8C%E6%95%99%E7%A8%8B.md
介绍如何能够至少运行一下这个项目
fork
(如果不是想自己继续在此基础上修改的可以直接跳到步骤2)git clone
到本地idea
pom.xml
中加载依赖mysql
中新建miaosha
库miaosha
库运行miaosha.sql
redis
rabbitmq
rabbitmq
中添加miaoshatest
,miaosha.queue
队列mysql
、redis
、rabbitmq
的信息填入到src/main/resources/application.properties
中com.geekq.miaosha.GeekQMainApplication
http://localhost:8080/login/to_login
mysql miaosha
数据库中把miaosha_user
中id
字段改为自增
(默认的id为手机号,密码是123456加1a2b3c混淆)手机号
注册miaosha_good
中的start_time
和end_time
fork
这一步是将别人的仓库复制到自己的账号中,所以如果只是想学习观摩运行,可以跳过这一步
git clone
命令是将该项目从云端仓库,克隆一份到本地。相当于下载,所以不管是不是你的项目,都可以使用这个命令将其“据为己有”
打开idea
选择File-New-Project from Sources
,将刚才clone的程序导入到开发环境中
如果正确的打开,项目目录如下图所示。
进入根目录中的pom.xml
文件,这儿存放着运行本项目所需要的依赖。
右键pom.xml
,选择Add as maven project
或者如图,选择Maven-Reimport
,即可从网上添加依赖,不需要自己导入jar包。
注意:如果下载很慢,请更改仓库
在pom.xml
文件中加入以下代码,将仓库更改为阿里云的仓库
<repositories>
<repository>
<id>aliyunid>
<name>aliyunname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
repository>
repositories>
使用Navicat
或其他软件链接你的mysql
数据库,新建miaosha
库
在miaosha
库运行根目录下的miaosha.sql
文件,即可创建必要的表
运行完之后,结果如图
在你的服务器上部署redis
在这里推荐一键部署redis(https://www.cnblogs.com/cjyboy/p/11249422.html)
该脚本直接执行会出错,需要将windows换行符替换为Linux换行符,作者的命令有误
命令如下
sed -i 's/\r//' auto_install_redis.sh
然后是部署rabbitMQ
这个部分问题很多,安装Erlang
rabbitMQ
都有诸多的问题,待老爷们自己解决
这里推荐这篇centos7 搭建rabbitmq服务 3.7.15(https://www.cnblogs.com/sz-jack/p/11121947.html)
不需要自己各种解压和转移文件夹
并且此时要新建一个admin
账号方便后面使用
如果一切顺利,输入http://ip:15672/
就可以进入rabbitMQ
的管理界面了
点击Queues
,添加以下两个队列
将刚才的mysql redis rabbitMQ
的一些信息填入到中
比如这几项,需要老爷们仔细查看文件结构,不要漏掉需要填写的
一切无误后,点击左上方运行
如果成功,将提示以下信息
如果配置信息或者部署有问题的话,这一步bug很多,请自行google
进入登录界面http://localhost:8080/login/to_login
此时已经成功将系统跑起来了
后面的内容都是对系统进行的简单测试,各位看官可酌情自我探索,这里先行不表