算法
| 算法 | 特点 | 适用场景 |
|---|---|---|
| 固定窗口 | 实现简单,窗口边界可放行约两倍流量 | 粗粒度保护 |
| 滑动窗口 | 统计平滑,内存开销略高 | 精确限流 |
| 令牌桶 | 按速率补令牌,允许突发 | API 配额 |
| 漏桶 | 恒定速率流出,削峰 | 保护下游处理速率 |
限流要定义拒绝语义:返回 429 并携带 Retry-After,比静默排队或超时更利于客户端配合。
常见限流算法包括固定窗口、滑动窗口、令牌桶与漏桶;令牌桶允许突发,漏桶平滑输出,滑动窗口统计更平滑,选择取决于要抑制突发还是允许突发。
| 算法 | 特点 | 适用场景 |
|---|---|---|
| 固定窗口 | 实现简单,窗口边界可放行约两倍流量 | 粗粒度保护 |
| 滑动窗口 | 统计平滑,内存开销略高 | 精确限流 |
| 令牌桶 | 按速率补令牌,允许突发 | API 配额 |
| 漏桶 | 恒定速率流出,削峰 | 保护下游处理速率 |