继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第18天 PHP秒杀设计之基础工具与知识介绍

潮流宣乐生
关注TA
已关注
手记 55
粉丝 0
获赞 0

课程名称:PHP秒杀设计

课程章节:基础工具与知识介绍

课程讲师:皮奇

课程内容:

安装压测工具

yum -y install httpd-tools
ab -V

使用上面的命令安装完以后执行下面的ab -V检查是否安装是哪个

检测接口最大qps(吞吐量)

ab -n100 -c10 http://xxx
  • 这里的100是总共访问多少次,10是使用多少个并发线程去访问
  • 答案在测试结果中Requests per second: 101.15 [#/sec](mean)
  • 建议写完接口以后都使用这条命令来检查一下qps是多少
  • 检测完以后还需要检查单接口的性能还有没有优化的空间,如果有,则做到最优化的情况
  • 然后还需要对接口做一个限流,确保接口不会因为流量暴增而出现雪崩的现象

限流

这里介绍使用nginx进行限流

nginx有两种限流方式

  • 按连接数限速,即并发数(ngx_http_limit_conn_module)
  • 按请求速率限速,按照ip限制单位时间内的请求数(ngx_http_limit_req_module)

这里介绍的是第二种方式,使用方式很简单,在nginx的配置文件中先创建规则,再在location中使用规则

// 创建规则
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;

// 应用规则
limit_req zone=mylimit burst=1 nodelay;
  • 规则的含义:根据用户的IP进行限流,限制的速率是每秒1个请求,规则的名字叫mylimit
  • burst=1含义:当某个IP请求速率为2的时候,第一个请求会去正常处理,第二个请求会排队
  • nodelay含义:让请求不排队

最后的测试结果是超过请求速率的请求,会返回503错误

课程收获

学会了ab压测工具最基本的使用,以及处理高并发的一些方法

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP