# 分布式限流 — 算法选型与架构 保护 API 端点,防止资源滥用
| 算法 | 优点 | 缺点 | 适用场景 | |------|------|------|----------| | 固定窗口计数器 | 实现简单 | 窗口边界突发 | 低精度场景 | | 滑动窗口 | 边界平滑 | 内存开销大 | 中等精度 | | 漏桶 | 严格平滑 | 无法应对突发 | 流量整形 | | **令牌桶** | **平滑 + 允许突发** | 实现稍复杂 | **API 限流** |
令牌按固定速率填充,请求消耗令牌。桶满时可应对短时突发流量,同时保持长期平均速率稳定。 **用户级**:per-user 维度,防止单用户滥用。**全局级**:per-endpoint 维度,保护后端服务总容量。两级独立配置,互不影响。 Redis 不可用时限流器自动放行(fail-open),保障核心业务不因限流组件故障而中断。