首页/开发/系统分析与架构设计速查/过载保护与流量丢弃

过载保护与流量丢弃

当负载超过容量时主动丢弃低优先级流量:按优先级分类请求,先保核心链路,丢弃或排队旁路请求,并快速返回可重试的错误。

分级核心(支付/登录)高于重要高于可降级(推荐/统计)
策略按级别限流与丢弃;丢弃时返回 429/503 与重试指引
联动过载信号上报自动扩容,缩短丢弃窗口

丢弃判定(伪代码)

丢弃判定(伪代码)
if inflight >= capacity * 0.9:           # 接近饱和
    if priority(req) == LOW: return 429(retry_after=1s)
if queue_wait(req) > timeout_budget:       # 排队超预算
    return 503(降级内容)
else: 正常入队

# 丢弃计数按接口与优先级打点,并触发过载告警
  • 丢弃面要小于受损面:只丢旁路与可降级流量
  • 返回可重试语义与建议退避时间,抑制无效重试
  • 联动自动扩容与降级开关,缩短丢弃持续窗口
丢弃策略要预先与业务确认级别划分:过载时刻才讨论优先级,决策通常来不及。

易错点

  • 无差别丢弃,核心交易先被误伤
  • 丢弃错误码无区分,客户端重试加剧过载

数据来源与参考

  • Google SRE Book:Handling Overload
  • AWS Well-Architected Framework:Reliability Pillar
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌