
1) 【一句话结论】在360视觉算法服务中,通过多实例部署+负载均衡、熔断降级、智能重试+超时处理的多级容错设计,结合实时监控与SLA校验,确保模型服务器宕机或推理超时时的服务可用性,满足99.9%的SLA要求。
2) 【原理/概念讲解】
老师:同学们,容错机制的核心是“防故障扩散+兜底保障”。具体来说:
3) 【对比与适用场景】
| 策略 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 重试 | 请求失败后,按策略重试 | 适用于临时故障(如网络延迟) | 模型推理超时(非永久故障)、网络抖动 | 避免无限重试,需指数退避 |
| 熔断 | 失败率超阈值时,暂时拒绝请求 | 防止故障扩散 | 模型服务器宕机、服务不可用 | 阈值需合理,避免误判 |
| 降级 | 暂时放弃部分功能,提供默认服务 | 提高核心功能可用性 | 模型推理超时、资源不足 | 降级策略需明确,不影响关键业务 |
4) 【示例】
伪代码(模型推理容错流程):
def process_image_request(image_data):
for attempt in range(MAX_RETRIES):
try:
instance = load_balancer.select_instance() # 负载均衡选实例
response = instance.infer(image_data) # 模型推理
if response.success:
return response
except TimeoutError: # 超时处理
return downgrade_response() # 返回降级结果
except Exception as e:
if circuit_breaker.is_open(): # 熔断检查
return fallback_response() # 返回降级结果
circuit_breaker.record_failure() # 记录失败
if circuit_breaker.is_closed(): # 关闭熔断
circuit_breaker.open()
return fallback_response()
return error_response() # 所有重试失败
5) 【面试口播版答案】
在360的视觉算法服务中,我们通过多级容错设计来保证99.9%的SLA。首先,采用多实例部署+负载均衡,当模型服务器宕机时,负载均衡会自动切换到其他健康实例,避免单点故障。其次,引入熔断机制,当模型推理失败率超过阈值(如连续5次失败),会暂时关闭该服务,避免故障扩散。同时,设置合理的超时时间(如3秒),超时后立即降级为返回默认识别结果(如“无法识别”),并触发重试策略(指数退避,如第一次重试1秒,第二次2秒等),但最多重试3次。此外,通过监控指标(如QPS、失败率、响应时间)实时监控服务状态,当指标超过阈值时,自动触发熔断或降级。这样,即使模型服务器宕机或推理超时,服务也能通过切换实例、降级处理、智能重试等方式,保证核心功能的可用性,满足99.9%的SLA要求。
6) 【追问清单】
7) 【常见坑/雷区】