高并发解决方案之“Nginx限流”
本文将分4个步骤讲解:
1.api压力测试
2.查看api响应性能
3.nginx限流进行优化
4.查看优化结果
1 api压力测试
1.1 安装压测工具
yum -y install httpd-tools # 安装压测工具
ab -v # 查看是否安装成功
1.2 开始api测试
ab -n1000 -c100 http://pear.tsaihoo.com/test.php # 100的并发请求,总共请求1000次
2 查看api响应性能
注:Requests per second: 24.47 [#/sec] (mean) 是指最大的qps (请求数/秒)
3 nignx限流进行优化
3.1 nginx限流可分为两种方式:
1)按连接数限速,即并发数(ngx_http_limit_conn_module)
2)按请求速率限速,按照ip限制单位时间内请求的数(ngx_http_limit_req_module)
3.2 nginx 限流配置:(这里用的按请求速率限速)
# 创建mylimit规则,根据用户的IP限流,限流的速率是1个请求每秒
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
# 应用mylimit规则,burst=1当1秒内存在2个请求可以缓存一个,其他的请求就报错,当burst很多时候,nodelay让后面的请求直接执行不用排队
limit_req zone=mylimit burst=1 nodelay;
3.3 在宝塔中加入配置:
或 vim /home/server/nginx/conf/nginx.conf直接进行配置,需要留意的是limit_req_zone放http模块,limit_req放server模块。
3.4 重启nginx
service nginx restart
3.5.查看是否启动成功
ps aux | grep nginx
4.查看优化结果
4.1 重复1.2步骤,结果:
4.2 查看nginx报错信息:
最后,我们发现压测的结果要比一开始的qbs要大,原因:nginx进行了限流,一次只能只能2个请求成功,后面的请求nginx直接返回了503(参考4.2),所以访问速度变快了。
还有不清楚的地方欢迎留言
高并发解决方案之“Nginx限流”相关推荐
- 可能要用心学高并发核心编程,限流原理与实战,分布式令牌桶限流
实战:分布式令牌桶限流 本节介绍的分布式令牌桶限流通过Lua+Java结合完成,首先在Lua脚本中完成限流的计算,然后在Java代码中进行组织和调用. 分布式令牌桶限流Lua脚本 分布式令牌桶限流Lu ...
- 高并发系统处理之——限流
高并发系统处理之--限流 对于高并发应用服务,有三个很好的方案可以保护系统 1.缓存 缓存的目的是提升系统访问速度和增大系统处理容量 2.降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉 ...
- 程序员修神之路--高并发优雅的做限流(有福利)
点击上方蓝色字体,关注我们 菜菜哥,有时间吗? YY妹,什么事? 我最近的任务是做个小的秒杀活动,我怕把后端接口压垮,X总说这可关系到公司的存亡 简单呀,你就做个限流呗 这个没做过呀,菜菜哥,帮妹子写 ...
- 高并发系统中的限流应该如何做?
缓存 缓存比较好理解,在大型高并发系统中,如果没有缓存数据库将分分钟被爆,系统也会瞬间瘫痪. 使用缓存不单单能够提升系统访问速度.提高并发访问量,也是保护数据库.保护系统的有效方式.大型网站一般主要是 ...
- 分布式高并发服务三种常用限流方案简介
以下文章来源于技术岁月 ,作者贺鹏Kavin 在高并发大流量系统中,由于并发大造成服务资源不足,负载过高,进而引发致一系列问题,这里的流量一般都是突发性的,由于系统准备不足,很难短期扩容来应对 ,进行 ...
- 高并发场景下的限流策略
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 在高并发的场景下,我们的优化和保护系统的方式通常有:多级缓存.资源隔离.熔断降级.限流等等. 今 ...
- springcloud 并发_SpringCloud-Zuul高并发请求下的限流处理
高并发的情况肯定是实际场景中经常碰到的情况,那么这种情况下限流措施肯定是必须的,本文我们就来看看zuul中限流的处理 高并发的限流处理 1.创建项目 创建一个SpringCloud项目 2.添加依赖 ...
- 高并发解决方案-代理服务器Nginx
文章目录 Nginx 1. Nginx概念 2.Nginx的应用场景 3. Linux环境下Nginx的安装与启动 4. Nginx静态网站部署 5. Nginx配置虚拟主机 5.1 端口绑定 5.2 ...
- 高并发解决方案(缓存、降级、限流)之限流笔记
转载自:jinnianshilongnian 高并发系统时有三把利器用来保护系统:缓存.降级和限流.缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹:而降级是当服务出问题或 ...
最新文章
- Yahoo javascript 开源界面库YUI 和EXT
- android怎么监听多点触摸_什么是多点触控技术,有哪些用途
- 【计算机网络】HTTP 与 HTTPS ( HTTP 在网络各个层级的传输过程 | HTTPS 工作流程 | HTTPS 弊端 )
- Unity 中使用Async-Await替代 coroutines
- JavaScript实现knight Tour骑士之旅算法(附完整源码)
- 目录浏览器对话框控件 c# 1614822374
- C语言表达式的求解规则,C语言实现整数四则运算表达式的计算
- Python监视用户计算机桌面窗口焦点的变化情况
- Lecture 7:策略梯度
- ELementD对象
- 使用 WebSphere ESB 构建企业服务总线
- 读书篇:《细说PHP》三、PHP的语言结构
- Hadoop核心组件及组件介绍
- linux下 Wowza安装与ffmpeg测试
- Python利用模糊查询两个excel文件数据 导出新表格
- csv excel 对比
- 20个开源的工业设计软件
- 射频信号处理知识点点滴滴
- 野生葫芦娃用心写的nodejs 内置模块------文件操作
- python提取数组元素_使用python提取数组元素的一部分
热门文章
- 电脑录音软件怎么录音
- Python机器学习算法入门教程(四)
- SQL Server 系统时间
- 目标跟踪评估绘图(1):Windows10环境将pycharm跑出来的OTB100数据集的.txt结果文件,转换成.mat文件
- 万字精华总结RocketMQ的常见用法(案例+图)
- python气象绘图_Python气象绘图教程(三)
- 仙境传说-按键精灵脚步研究
- windows驱动开发——环境搭建
- JS 判断Chrome内核的360浏览器,并禁用
- 成功解决 由于找不到opencv_world410d.dll,无法执行代码,重新安装程序可能会解决此问题