(二)秒杀基础工具与限流配置

服务器压力检测工具ab

安装

$ yum -y install httpd-tools
$ ab -V

检测接口最大QPS(每秒查询率 - 吞吐量)

$ ab -n100 -c10 http://xxx
//-n 请求次数  -c 并发数
...
Requests per second:    8.03 [#/sec] (mean) 	//每秒多少个请求
...

nginx限流

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

限流配置

  • 创建规则

语法 :limit_req_zone key zone=name:size rate=rate;
配置段 :http

此指令用于声明请求限制zone,zone可以保存各种key的状态,name是zone的唯一标识,size代表zone的内存大小,rate指定速率限制。

  • 应用规则

语法 : limit_req zone=name [burst=number] [nodelay];
配置段 :http, server, location
limit_req zone=mylimit burest=1 nodelay

此指令用于设置共享的内存zone和最大的突发请求大小。
若请求速率超过了limit_req_zone中指定的rate但小于limit_req 中的burst,则进行延迟处理,若再超过burst,就可以通过设置nodelay对其进行丢弃处理。

  • 例子
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server {
    location /search/ {
        limit_req zone=one burst=5;
    }
}

单客户分为三种情况

  1. 请求速率 < rate(1r/s),正常处理
  2. rate(1r/s) < 请求速率 < burst(5r/s),大于rate部分延迟
  3. burst(5r/s) < 请求速率,大于burst部分丢弃(返回503服务暂时不可用)
发布了38 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42260789/article/details/105453377