Nginx限流 1.控制速率(突发流量) 参考漏桶算法(桶有固定大小,超过大小,多余请求会等待或抛弃) nginx配置 limit_req_zone:标识,表示设置一个请求的区域, 用于限制对指定资源的请
Nginx限流
1.控制速率(突发流量)
参考漏桶算法(桶有固定大小,超过大小,多余请求会等待或抛弃)
nginx配置
limit_req_zone:标识,表示设置一个请求的区域,用于限制对指定资源的请求频率
key:定义限流对象,binary_remote_addr就是一种key,基于客户端ip限流
Zone:定义共享存储区来存储访问信息,10m可以存储16wip地址访问信息
service1RateLimit:自定义标识
Rate:最大访问速率,rate=10r/s 表示每秒最多请求10个请求
lburst=20:相当于桶的大小
Nodelay:快速处理
2.控制并发连接数
limit_conn perip 20:对应的key是 $binary_remote_addr,表示限制单个IP同时最多能持有20个连接。
limit_conn perserver 100:对应的key是 $server_name,表示虚拟主机(server) 同时能处理并发连接的总数
3.网关限流
参考令牌桶算法
yml配置文件中,微服务路由设置添加局部过滤器RequestRateLimiter
lkey-resolver :定义限流对象( ip 、路径、参数),需代码实现,使用spel表达式获取
lreplenishRate :令牌桶每秒填充平均速率。
lurstCapacity :令牌桶总容量。