四种限流思想

限流中间件

实现方式

  • 计数器法
  • 滑动窗口
  • 漏桶算法
  • 令牌桶算法

漏桶算法

假设有有个容积大小固定的过滤器,过滤器的入口处流量大小不设限制,容器出口的流量大小固定;
过滤器代表漏桶
过滤器入口表示客户端连接过来的请求
过滤器出口表示通过了限流中间件的客户端请求
因为过滤器容积固定,所以当出口流出的速率小于入口流入的速率时,随着时间的积累,过滤器的容积会被填满,此时再发送过来的请求就会被丢弃掉;达到限流的目的。

令牌桶

一个固定容积大小的容器,以恒定的速率向容器中放入令牌,直到桶内被放满令牌,桶内被令牌占满后,新加令牌会被丢弃;客户端每来一个请求,就被以请求对应包大小的比例,从容器内取出相应数量的令牌,当桶内令牌不足或为空时,请求将会被拒绝;

计数器法

在指定的时间区间内,为每个用户的请求累计计数,当累计计数超过设置的阈值时,拒绝请求;时间超过指定的时间区间时,自动对计数清零;

滑动窗口

设置一个固定长度的区间窗口,该窗口在时间轴上,从左向右进行滑动,统计窗口所在的时间区间内的累计请求数,超过累计计数时直接拒绝请求;

posted @ 2020-12-08 10:37  azi-v  阅读(95)  评论(0编辑  收藏  举报