目标
应在过载时削减低优先级负载以保护关键流量。本工作流明确请求优先级,按队列深度或延迟阈值触发削减,优先丢弃或延后低优先级请求而继续服务关键流量,最后在超过容量时验证服务优雅降级而非整体失败。
步骤要点
- 明确请求的优先级顺序。
- 按队列深度或延迟阈值触发削减。
- 先削减低优先级而继续服务关键流量。
- 过载时验证优雅降级与清晰错误。
# shed when queue depth exceeds capacity
if queue.depth > 1000 { rejectLowPriority() }
验证
按顺序执行上述步骤后,逐项确认每个步骤的预期状态均已满足;只有全部预期状态成立,才认为本流程完成。若某一步未达到预期状态,应先按排错提示排查,不要跳过继续,以免掩盖问题。
排错提示
- 不削减会让过载拖垮一切。
- 无界队列会把过载变成超时。
- 削减关键流量会伤害最该保护的用户。
适用边界
- 需要优先级分类与指标。
- 应由产品与工程共同定义优先级。