(秒杀项目) 4.5 项目部署与压测
一、项目部署
1. 部署逻辑
因为是前后端分离开发、所以部署到服务器上前后端要分别部署。
- nginx:使用
web服务
做前端页面浏览的服务器。反向代理
用来做发送后端数据接口请求的地址转发。 - 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中修改为中文模式。
- 右击test plan创建一个线程组。
- 配置线程数、10秒50个线程、循环次数10次也就是100秒500个线程
- 添加取样器http请求、配置请求的端口
- 添加结果树和聚合报告
2. 压测
商品详情压测
配置请求的商品详情端口
配置好之后单击run启动
启动后结果树中会有请求的结果
聚合报告中会有本次压测的数据统计、吞吐量、平均请求时间等等。
压力测试之后使用top -h查看各个系统资源使用的状态、发现明显提升了。
下单操作压测
下单操作要登录才能测试、所以测试时我们可以携带cookie去测试。请求参数要有商品的id、数量活动id
配置下单操作测试
不同的就是多了一个cookie管理器用来模拟登录
run进行测试、结果树数据请求成功测试成功
查看聚合报告、测试的相关报告也显示出来了。
上面只发了一个请求,成功后再更改线程相关配置即可。
三、总结
面试时可以说自己通过压力测试优化通过什么方式优化了某些模块、将他的吞吐量什么的从多少提高到了多少、这样说会让面试官觉得你有理有据、而不是凭感觉去优化的就会很虚。
面试需要复习的八股文:
- 部署时linux用到的一些命令。
- mysql主从复制。
- 数据库的分布式事务。
(秒杀项目) 4.5 项目部署与压测相关推荐
- Flutter 新闻客户端 - 17 headless strapi centos 发布部署 + jmeter 压测
本节目标 上传代码到生产环境 配置发布环境代码 docker-compose 方式启动项目 jmeter 做基线测试 调优服务器配置 视频 https://www.bilibili.com/video ...
- 字节跳动全链路压测(Rhino)的实践
1. 背景 随着公司业务的不断扩张,用户流量在不断提升,研发体系的规模和复杂性也随之增加.线上服务的稳定性也越来越重要,服务性能问题,以及容量问题也越发明显. 因此有必要搭建一个有效压测系统,提供安全 ...
- 阿里巴巴高可用技术专家襄玲:压测环境的设计和搭建
性能压测,是保障服务可用性和稳定性过程中,不可或缺的一环,但是有关性能压测的体系化分享并不多.从本期开始,我们将推出 <Performance Test Together> (简称PTT) ...
- 高德全链路压测平台TestPG的架构与实践
导读 2018年十一当天,高德DAU突破一个亿,不断增长的日活带来喜悦的同时,也给支撑高德业务的技术人带来了挑战.如何保障系统的稳定性,如何保证系统能持续的为用户提供可靠的服务?是所有高德技术人面临的 ...
- 高德地图全链路压测平台TestPG的架构与实践
高德地图:全链路压测平台TestPG的架构与实践 转自 https://www.sohu.com/a/341414025_692515 1. 导读 2019年以来,高德DAU一个亿进入常态,不断增长 ...
- DGIOT国内首家轻量级物联网开源平台——三千万电表集抄压测
[小 迪 导读]:在物联平台运行时,设备不断增加,平台压力不断增加,平台的承受能力至关重要. dgiot方案 其他方案 模拟设备+真实设备测试平台承受能力 项目实践测试平台承受能力 压测背景 dgio ...
- 干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径
简介:全链路压测方案下,非加密场景下至少有 70% 的性能提升,加密场景下 10%的性能提升,并在 MGS 扩容完成后可实现大幅的性能提升,调优的结果远超预期. 业务背景 随着移动开发行业的步入存量时 ...
- 技术干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径
简介: 全链路压测方案下,非加密场景下至少有 70% 的性能提升,加密场景下 10%的性能提升,并在 MGS 扩容完成后可实现大幅的性能提升,调优的结果远超预期. 业务背景 随着移动开发行业的步入存量 ...
- 大数据千亿级离线数仓项目第一天 环境部署和etl
千亿级数仓项目第01天讲义 课程目标 了解大数据离线数仓架构 了解项目部署环境(数据规模和集群规模) 掌握ETL工具 Kettle常用组件的使用 能够掌握kettle作业与转换区别以及linux部署 ...
- 【Java】购买腾讯云服务器,并部署Spring boot项目,再到部署自己的个人博客,域名备案,安全连接配置
云服务器部署 一.购买腾讯云服务器 二.简单配置 2.1 进入控制台 2.2 配置防火墙 2.3 配置访问密码 三.远程ssh登录连接服务器 四.云服务器安装软件 4.1 安装JDK 4.2 安装My ...
最新文章
- 用计算机画曲线教案,小学信息技术曲线工具教案
- VINS-Mono:一种鲁棒且通用的单目视觉惯性系统
- Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集......
- CORS(跨域资源共享)
- Java的注解机制——Spring自动装配的实现原理
- 数字信号处理1:卷积
- 自动化测试--实现一套完全解耦的简单测试框架
- [Ext JS 7]7.2 事件(Event)
- iptables中DNAT、SNAT和MASQUERADE的理解
- Vijos P1127 级数求和【数列】
- DH算法证明及相应的理论知识
- gmail 设置 smtp_如何在Linux上使用Gmail或SMTP设置电子邮件警报
- Python定时爬虫脚本
- 515. 在每个树行中找最大值(中等 树 广度优先搜索 二叉树)
- GUI(Graphic User Interface) 图形用户界面
- SocialBook帮你扫除网红营销乱象
- auth认证相关 --token 深入了解
- 技术周刊(第10期):新技术又来了?
- iOS VoIP PushKit 的问题
- 国外客户搜索引擎对比,Snovio为代表的外贸助手功能一览
热门文章
- iOS开发中的HTML解析
- Nagios监控数据脚本记录一下。
- 轻量级web富文本框——wangEditor使用手册(3)——如何自定义配置菜单 demo
- 无法创建新虚拟机: 无法打开配置文件“E:\vmware\Windows7.vmx”: 拒绝访问。
- javascript 基础之事件(event)-------1
- ubuntu系统VNC服务器安装配置
- 11.软件架构设计:大型网站技术架构与业务架构融合之道 --- 多副本一致性
- 2.企业应用架构模式 --- 组织领域逻辑
- 59. web 攻击技术(3)
- 2. mac mysql error