限流的实现方式
重点说的Nginx和网关
Nginx限流
在Nginx中提供了两种限流的方式:控制速率(突发流量)和控制并发的连接数
控制速率(突发流量)
使用漏桶算法实现限流
漏桶算法的工作方式看下图那个桶:
漏桶上方的水滴代表请求的数量,在桶里面存储的就是请求,然后漏桶以固定的速率漏出请求;
注意:这个桶有固定大小,比如最多只能存储100个请求,超出的请求会让它等待或直接抛弃。
接下来看如何配置:
控制并发的连接数
在微服务中网关的限流
限流思想采用令牌桶:
首先:令牌桶中存储的是令牌,以固定的速率生成令牌,存入令牌桶中,桶满后暂停生成。
当请求来的时候,需要到桶中申请令牌,请求申请到令牌才会被服务处理,但请求没有申请到令牌,就会被阻塞或丢弃。
接下来看配置: