(秒杀项目) 4.5 项目部署与压测

一、项目部署

1. 部署逻辑

在这里插入图片描述因为是前后端分离开发、所以部署到服务器上前后端要分别部署。

  1. nginx:使用web服务做前端页面浏览的服务器。反向代理用来做发送后端数据接口请求的地址转发。
  2. tomcat:用来做后端服务器。

大致逻辑: 浏览器端输入url地址 —> 请求web服务器前端页面 —> 发送ajax请求 —> 访问反向代理 —> 请求后端接口 —> 返回数据给反向代理 —> 返回给浏览器。

这里使用80端口表示请求的是前端页面、90端口请求的是后端接口。

2. 部署运行后台项目

部署之前将配置文件的mysql访问的ip改为本地127.0.0.0,因为项目和mysql安装在同一个服务器上所以直接访问本地端口即可。
将java项目打包、将打包好的jar包上传到服务器中。
在这里插入图片描述打包好后target下会有打包好的jar包、将他上传到服务器上。
在这里插入图片描述
安装jdk
上传好之后就是运行了、但要保证有没有jdk环境,没有就去安装。
阿里云centos 7下安装jdk

运行项目
将资料中
在这里插入图片描述上传到与jar包相同文件目录下、使用sh startup.sh运行即可。startup.sh内容如下
在这里插入图片描述
然后访问接口测试即可、启动成功。
在这里插入图片描述

3. 部署前端页面

安装nginx
参考:centOS7.6安装nginx

将页面上传到ngin中的html文件夹下
在这里插入图片描述上传之后将前端项目中的js文件夹下的common访问的ip地址改成90端口的代理端口
在这里插入图片描述配置nginx
配置反向代理和webserver
注释掉nginx中的server配置
改为如下配置

# 前端服务器的配置
server {
        listen       80;
     
        location / {
            alias /usr/local/nginx/html/seckill-site/;
            index seckill.html
        }
}
# 后端接口的反向代理max_fails=3表示请求三次连接不上就不再请求这个url、fail_timeout=30s表示超过30s表示超时请求失败。
upstream myserver {
       server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
}

server {
        listen       90;
        server_name _;
     
        location / {
            proxy_pass http://myserver;
        }
}


配置好之后重启nginx
cd到nginx所在目录下、使用./nginx -s reload命令重启
访问http://你的服务器id,数据显示在页面上表示配置成功。
在这里插入图片描述

二、压测

压测之前先使用top -h命令查看average(有三个数分别表示的是1分钟、5分钟、15分钟的负载状态)的属性状况
在这里插入图片描述
我们的目的是让这三个参数接近2、2表示负载差不多满了、超过2服务器会宕机。
还要看的就是各个进程占cpu的状态不能超过100%。

1. jemeter的安装配置

安装 :安装只要下载好压缩包解压就可以了。
在这里插入图片描述配置:安装好了之后更改下配置文件的编码、不该就会乱码。
在这里插入图片描述在这里插入图片描述启动:安装配置好之后就是启动了、启动在解压目录下的bin文件夹中
在这里插入图片描述使用:先在上面的option中修改为中文模式。

  1. 右击test plan创建一个线程组。
    在这里插入图片描述
  2. 配置线程数、10秒50个线程、循环次数10次也就是100秒500个线程
    在这里插入图片描述
  3. 添加取样器http请求、配置请求的端口
    在这里插入图片描述
    在这里插入图片描述
  4. 添加结果树和聚合报告
    在这里插入图片描述
    在这里插入图片描述
2. 压测
商品详情压测

配置请求的商品详情端口
在这里插入图片描述

配置好之后单击run启动
在这里插入图片描述
启动后结果树中会有请求的结果
在这里插入图片描述
聚合报告中会有本次压测的数据统计、吞吐量、平均请求时间等等。
在这里插入图片描述压力测试之后使用top -h查看各个系统资源使用的状态、发现明显提升了。
在这里插入图片描述

下单操作压测

下单操作要登录才能测试、所以测试时我们可以携带cookie去测试。请求参数要有商品的id、数量活动id
在这里插入图片描述
在这里插入图片描述

配置下单操作测试
在这里插入图片描述不同的就是多了一个cookie管理器用来模拟登录
在这里插入图片描述
run进行测试、结果树数据请求成功测试成功
在这里插入图片描述查看聚合报告、测试的相关报告也显示出来了。
在这里插入图片描述
上面只发了一个请求,成功后再更改线程相关配置即可。
在这里插入图片描述

三、总结

面试时可以说自己通过压力测试优化通过什么方式优化了某些模块、将他的吞吐量什么的从多少提高到了多少、这样说会让面试官觉得你有理有据、而不是凭感觉去优化的就会很虚。
面试需要复习的八股文:

  1. 部署时linux用到的一些命令。
  2. mysql主从复制。
  3. 数据库的分布式事务。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值