标准答案
- 观察生产速率、有效完成速率、队列长度、最老任务年龄、请求等待和拒绝率的趋势,而不是单点值。
- 将排队等待与请求 deadline 比较,超过用户可接受时间的任务应快速拒绝、降级或过期丢弃。
- 判断下游是否已经饱和、重试是否放大、扩容是否能增加有效服务速率,再选择限流、暂停生产或恢复。
- 恢复时逐步放量并确认积压清零、错误率和数据正确性。
题目解析
系统进入不可恢复状态的判断依据是服务速率和用户有效期限,而不只是机器利用率。即使队列长度不大,只要最老任务已经超过 deadline,继续接收同类工作也只会制造无效副作用。
应同时看生产速率、有效完成速率、任务年龄、等待时间、拒绝率、重试放大和下游饱和度。只有确认服务速率已经恢复并且积压能在有效窗口内消化,才适合逐步放量。
恢复要有阶段:暂停或限流生产、清理过期任务、处理关键任务、观察错误和对账,再逐步解除保护。一次性恢复全部入口很容易让刚恢复的下游再次被打垮。
常见误区
- 误区:只看队列长度不看任务年龄。改正:同时看最老任务、请求 deadline 和消费速率,判断积压是否还有业务价值。
- 误区:排队已超时仍继续重试。改正:丢弃或转移已失去价值的工作,并保留可审计的过期原因。
- 误区:恢复时一次性解除所有限流。改正:按阶段放量,验证资源、错误率、积压和数据正确性后再扩大流量。