/Mall-second-kill-project

https://github.com/styleforme/Mall-second-kill-projects.git

Primary LanguageJava

项目介绍

采用前后端分离技术开发的基于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

第二步:服务器安装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 请求详情页,一个是用户下单的操作

致谢

该项目是学习过程中的产物,参考了一些优秀的教程和项目,在此表示感谢