
1) 【一句话结论】
采用L4+L7双级负载均衡、服务降级、熔断机制与跨机房多活容灾的组合架构,通过多节点部署和智能流量调度,确保单节点故障时服务不中断,同时兼顾性能与数据一致性。
2) 【原理/概念讲解】
老师来解释几个核心概念:
3) 【对比与适用场景】
| 对比项 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 负载均衡策略 | L4(四层):基于IP/端口分发流量;L7(七层):基于HTTP/HTTPS内容分发 | L4无状态、速度快;L7解析应用层、支持会话保持 | 前端流量(L4)、后端服务调用(L7) | L4不支持应用层识别,L7延迟较高 |
| 服务降级 vs 熔断 | 服务降级:主动关闭非核心功能;熔断:保护服务间调用 | 服务降级保障服务自身核心功能;熔断防止级联故障 | 核心业务(降级)、服务间调用(熔断) | 降级需明确核心/非核心,熔断需设置合理阈值 |
4) 【示例】
upstream model_service {
server 192.168.1.10:8000 weight=3; # 广州主节点
server 192.168.1.11:8000 weight=2; # 广州备节点
server 192.168.1.12:8000 weight=1; # 深圳节点
health_check; # 健康检查
}
server {
listen 80;
location /model {
proxy_pass http://model_service;
proxy_cookie_path /model/; # 会话保持(可选)
}
}
@HystrixCommand(fallbackMethod = "fallbackQueryModel")
public String queryModel(String modelId) {
// 调用大模型服务
return modelService.query(modelId);
}
public String fallbackQueryModel(String modelId) {
// 降级逻辑:返回默认模型
return "Model service is unavailable, please try later.";
}
5) 【面试口播版答案】
“面试官您好,针对大模型服务的高可用设计,核心思路是构建多级容灾体系,结合负载均衡、服务降级、熔断和跨机房容灾。首先,负载均衡层面,采用L4+L7双级策略:前端用L4负载均衡器(如Nginx的L4模式)分发流量到广州/深圳机房入口,后端用L7负载均衡(如Nginx upstream)分发到不同模型服务实例,确保单节点故障时流量自动切换。然后是服务降级,针对大模型推理的高并发场景,当请求量超过阈值(如1000QPS)时,主动关闭非核心功能(如实时推荐、复杂分析),只保留基础查询、基础生成等核心功能,保障核心业务不中断。熔断机制方面,在服务间调用(如调用大模型API)时,使用Hystrix等工具,当下游服务故障率超过50%时,直接返回默认值或错误,避免级联故障。跨机房容灾方面,采用多活部署,广州和深圳机房同时部署模型服务,通过数据库同步(如MySQL主从复制)或消息队列(如Kafka)同步数据,确保数据一致性,同时用全局负载均衡器(如AWS Global Accelerator)分发请求到不同机房,实现故障时的自动切换。”
6) 【追问清单】
7) 【常见坑/雷区】