# 商城秒杀项目 **Repository Path**: styleforme_coding/mall-second-kill-project ## Basic Information - **Project Name**: 商城秒杀项目 - **Description**: 基于SpringBoot+BootStrap的商城秒杀项目,主要解决商城促销活动中的高并发问题。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-02-21 - **Last Updated**: 2022-03-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 项目介绍 采用前后端分离技术开发的基于SpringBoot+BootStrap的商城秒杀项目,主要解决商城促销活动中的高并发问题。 ### 前端技术栈 核心框架:BootStrap 搭配js ### 后端技术栈 核心框架:SpringBoot 持久化框架:MyBatis Token认证:JWT 数据库:MySQL Redis 中间件:RocketMQ 缓存:Guava Cache ### 用户注册 输入手机号,获取验证码,验证码是发送到IDEA控制台的,在完善个人信息,点击注册 ### 用户登录 账号:19186782085 密码:huwei1234 ## 快速开始 ### Winows部署 第一步:创建 MySQL数据库seckill,并执行Mall-second-kill-projects/sql/seckill-data初始化表数据 第二步:修改配置信息Mall-second-kill-projects/seckill/src/main/resources/applition-dev 第三步:安装Redis并启动 第四步:安装RocketMQ并启动 第六步:启动后端服务 第七步:启动前端服务:VSCode打开seckill-site文件夹,在终端输入npm install命令安装依赖,输入npm run serve启动服务 ### Linux云端部署并压测 第一步:进入云服务器控制台防火墙开放相应的端口号 ![image](https://user-images.githubusercontent.com/97151855/150635010-118f38d5-2a79-4f10-b0bc-d12b5eb6a218.png) 第二步:服务器安装JDK、MySQL、Redis、Nginx、RocketMQ、Jmeter并修改相应的配置文件 安装步骤链接:https://blog.csdn.net/m0_57237237/category_11596031.html?spm=1001.2014.3001.5482 第三步:在IDEA对项目进行打包 mvn clean package -Dmaven.test.skip=ture命令打包 第四步:上传打包的项目和SQL到服务器 scp seckill-0.0.1-SNAPSHOT.jar root@191.90.194.100:/root命令上传jar包 scp seckill.sql root@191.90.194.100:/root命令上传sql表 scp seckill-data.sql root@191.90.194.100:/root命令上传sql数据 第五步:配置Nginx反向代理 server { listen 80; location / { alias /usr/share/nginx/html/seckill-site/; index seckill.html; } }(本机的,Tomcat,超过三次请求不到,就认为失败,超过 30s 访问不到就不访问了。) upstream myserver { server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; }(负载均衡,再来个 server,90 端口会把请求转给 myserver) server { listen 90; server_name _; location / { proxy_pass http://myserver; } } 第六步:通过jmeter进行压测 点击test plan(左侧),添加线程-线程组,添加线程组设置 50 10 10 选择线程组,右键,添加取样器,HTTP请求 填表:协议HTTP,路径名称或 ip191.90.194.100,端口90(只压测后端:商品详情+下单操作) HTTP 请求 GET,路径/item/detail/161,内容编码 utf-8 线程组,右键,添加监听器,察看结果树(看结果对不对) 线程组,右键,添加监听器,聚合报告(一共发了多少请求,吞吐量,有没有错误)【90%、95%、异常有没有报错、吞吐量】 每秒查询率 QPS 和吞吐量 TPS 均看的是聚合报告里的吞吐量,但是操作不一样,一个是 GET 请求详情页,一个是用户下单的操作 ### 致谢 该项目是学习过程中的产物,参考了一些优秀的教程和项目,在此表示感谢