rate-limiting

限流算法

摘要:限流(Rate Limiting)是系统保护的重要机制,通过控制单位时间内的请求量防止系统过载。常见算法包括令牌桶、漏桶、滑动窗口等。

来源:raw/技术/限流.md

最后更新:2026-06-27


常见限流算法

1. 令牌桶算法(Token Bucket)

以固定速率向桶中添加令牌,每个请求消耗一个令牌。桶有最大容量。当请求到达时桶中有足够令牌则放行,否则拒绝。

优点:允许一定的突发流量(桶有积攒的令牌)

2. 漏桶算法(Leaky Bucket)

请求以任意速率进入桶中,桶以固定速率"漏出"处理请求。桶满则新请求被丢弃。

优点:强制平滑流量,输出速率恒定

3. 计数器算法

在单位时间窗口内计数,超过阈值则拒绝。实现简单但有"临界突变"问题。

4. 滑动窗口算法

将时间窗口划分为更小的时间片,滑动统计,解决计数器的临界突变问题。

5. 信号量(Semaphore)

限制同时执行的并发数,超过则等待或拒绝。

应用场景

相关页面