Soffio

核心要点

限流的数学本质

  • 系统响应时间随负载率呈非线性增长:
  • 当负载接近容量时,延迟指数级恶化

主要算法对比

  1. 固定窗口:简单但有边界突刺问题
  2. 滑动窗口:精确但开销大
  3. 令牌桶:优雅平衡,支持突发
  4. 漏桶:平滑流量,保护下游

分布式限流权衡

  • CP方案(Redis中心化):精确但有延迟
  • AP方案(本地+同步):快速但可能超限
  • 分片方案:独立但负载不均

真实案例洞察

  • GitHub API过载:单客户端100万请求导致全站故障
  • Google分布式限流:P99延迟0.8ms,误差<2%
  • AWS分层限流:按用户价值分配资源

实践建议

  1. 测量真实容量,留30%余量
  2. 分析流量模式,选择匹配算法
  3. 多维度限流(用户/IP/API/全局)
  4. 持续监控调整,优化用户体验

限流不是技术炫技,而是保护系统稳定性的理性工具。