限流算法-常见的限流算法
2025-10-13 20:48:02 0 举报
AI智能生成
限流算法-常见的限流算法
作者其他创作
大纲/内容
固定窗口(计数器)
来一个请求count+1,窗口结束则count清0
如果快结束来了Max-1个,下一个窗口开始Max-1,那么就是2Max-2,显然已经超出了阈值
如果快结束来了Max-1个,下一个窗口开始Max-1,那么就是2Max-2,显然已经超出了阈值
滑动时间窗口算法
为了解决固定窗口的问题而生,把一个窗口分为若干块
每隔一段时间,将最左边块的Count--,之后右移动一个单位
滑动时间窗口限流法其实就是计数器算法的一个变种,依然存在临界值的问题。并且流量的过渡是否平滑依赖于我们设置的窗口格数,格数越多,统计越精确,但是具体要分多少格呢?
每隔一段时间,将最左边块的Count--,之后右移动一个单位
滑动时间窗口限流法其实就是计数器算法的一个变种,依然存在临界值的问题。并且流量的过渡是否平滑依赖于我们设置的窗口格数,格数越多,统计越精确,但是具体要分多少格呢?
漏桶算法
漏桶算法以一个常量限制了出口流量速率,因此漏桶算法可以平滑突发的流量。其中漏桶作为流量容器我们可以看做一个FIFO的队列,当入口流量速率大于出口流量速率时,因为流量容器是有限的,超出的流量会被丢弃。
水滴是入口流量,漏桶是流量容器,匀速流出的水是出口流量。
因为漏桶算法的流出速率是固定的,所以漏桶算法不支持出现突发流出流量。但是在实际情况下,流量往往是突发的。
水滴是入口流量,漏桶是流量容器,匀速流出的水是出口流量。
因为漏桶算法的流出速率是固定的,所以漏桶算法不支持出现突发流出流量。但是在实际情况下,流量往往是突发的。
令牌桶算法
令牌桶算法是如何支持突发流量的呢?最开始,令牌桶是空的,我们以恒定速率往令牌桶里加入令牌,令牌桶被装满时,多余的令牌会被丢弃。当请求到来时,会先尝试从令牌桶获取令牌(相当于从令牌桶移除一个令牌),获取成功则请求被放行,获取失败则阻塞或拒绝请求。那么当突发流量来临时,只要令牌桶有足够的令牌,就不会被限流。
0 条评论
下一页