核心要点
限流的数学本质
- 系统响应时间随负载率呈非线性增长:
- 当负载接近容量时,延迟指数级恶化
主要算法对比
- 固定窗口:简单但有边界突刺问题
- 滑动窗口:精确但开销大
- 令牌桶:优雅平衡,支持突发
- 漏桶:平滑流量,保护下游
分布式限流权衡
- CP方案(Redis中心化):精确但有延迟
- AP方案(本地+同步):快速但可能超限
- 分片方案:独立但负载不均
真实案例洞察
- GitHub API过载:单客户端100万请求导致全站故障
- Google分布式限流:P99延迟0.8ms,误差<2%
- AWS分层限流:按用户价值分配资源
实践建议
- 测量真实容量,留30%余量
- 分析流量模式,选择匹配算法
- 多维度限流(用户/IP/API/全局)
- 持续监控调整,优化用户体验
限流不是技术炫技,而是保护系统稳定性的理性工具。