51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

设计大模型服务的高可用架构,确保在单节点故障时服务不中断。请说明负载均衡策略、服务降级、熔断机制,以及如何实现跨机房容灾。

荔枝集团大模型应用实习生(广州)难度:困难

答案

1) 【一句话结论】
采用L4+L7双级负载均衡、服务降级、熔断机制与跨机房多活容灾的组合架构,通过多节点部署和智能流量调度,确保单节点故障时服务不中断,同时兼顾性能与数据一致性。

2) 【原理/概念讲解】
老师来解释几个核心概念:

  • 负载均衡:是流量分发的关键,分L4(四层,基于IP/端口,无状态、速度快,适合前端流量)和L7(七层,基于HTTP/HTTPS,解析应用层内容,适合后端服务调用)。比如前端用Nginx的L4模式分发到广州/深圳机房入口,后端用Nginx upstream分发到不同模型服务实例。
  • 服务降级:在高负载或故障时,主动关闭非核心功能(如实时推荐、复杂分析),只保留核心功能(如基础查询、基础生成),保障核心业务可用。比如流量超过阈值时,关闭推荐API,只保留查询API。
  • 熔断机制:当下游服务故障率超过阈值(如50%)或响应时间超过阈值(如500ms)时,直接返回默认值或错误,避免级联故障。比如调用大模型API时,若失败率超过阈值,直接返回“服务不可用”。
  • 跨机房容灾:多活部署(广州、深圳机房同时提供服务),通过数据库同步(如MySQL主从复制)或消息队列(如Kafka)同步数据,确保数据一致性;用全局负载均衡器(如AWS Global Accelerator)分发请求到不同机房,故障时自动切换。

3) 【对比与适用场景】

对比项定义特性使用场景注意点
负载均衡策略L4(四层):基于IP/端口分发流量;L7(七层):基于HTTP/HTTPS内容分发L4无状态、速度快;L7解析应用层、支持会话保持前端流量(L4)、后端服务调用(L7)L4不支持应用层识别,L7延迟较高
服务降级 vs 熔断服务降级:主动关闭非核心功能;熔断:保护服务间调用服务降级保障服务自身核心功能;熔断防止级联故障核心业务(降级)、服务间调用(熔断)降级需明确核心/非核心,熔断需设置合理阈值

4) 【示例】

  • 负载均衡配置(Nginx):
    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.";
    }
    
  • 跨机房数据同步(Kafka+MySQL主从):
    • MySQL主从复制:主库(广州)写数据,从库(深圳)异步同步,延迟约1-2秒;
    • Kafka异步同步:写入Kafka后,深圳节点从Kafka消费数据,延迟约100ms,确保数据最终一致性。

5) 【面试口播版答案】
“面试官您好,针对大模型服务的高可用设计,核心思路是构建多级容灾体系,结合负载均衡、服务降级、熔断和跨机房容灾。首先,负载均衡层面,采用L4+L7双级策略:前端用L4负载均衡器(如Nginx的L4模式)分发流量到广州/深圳机房入口,后端用L7负载均衡(如Nginx upstream)分发到不同模型服务实例,确保单节点故障时流量自动切换。然后是服务降级,针对大模型推理的高并发场景,当请求量超过阈值(如1000QPS)时,主动关闭非核心功能(如实时推荐、复杂分析),只保留基础查询、基础生成等核心功能,保障核心业务不中断。熔断机制方面,在服务间调用(如调用大模型API)时,使用Hystrix等工具,当下游服务故障率超过50%时,直接返回默认值或错误,避免级联故障。跨机房容灾方面,采用多活部署,广州和深圳机房同时部署模型服务,通过数据库同步(如MySQL主从复制)或消息队列(如Kafka)同步数据,确保数据一致性,同时用全局负载均衡器(如AWS Global Accelerator)分发请求到不同机房,实现故障时的自动切换。”

6) 【追问清单】

  • 问题:负载均衡中,如何选择L4和L7的边界点?
    回答要点:L4负责流量分发到机房入口,L7负责分发到具体服务实例,边界点通常在前端网关(如Nginx的L4模式)和后端服务网关(如Nginx upstream)之间,根据流量规模和协议复杂度调整。
  • 问题:服务降级时,如何判断核心与非核心功能?
    回答要点:根据业务优先级,比如支付、登录是核心,推荐、分析是非核心;或根据SLA(服务等级协议),核心功能SLA更高,优先保障。
  • 问题:跨机房容灾中,数据同步的延迟如何处理?
    回答要点:采用异步同步(如消息队列)降低延迟,或主从同步结合,确保数据最终一致性,同时设置数据一致性窗口(如5分钟内同步)。
  • 问题:熔断的阈值如何设置?
    回答要点:根据历史数据,比如下游服务故障率超过阈值(如50%),或响应时间超过阈值(如500ms),触发熔断。

7) 【常见坑/雷区】

  • 负载均衡策略混淆:错误地将L4和L7的功能混淆(如用L4做应用层负载均衡),或忽略健康检查导致流量分发到故障节点。
  • 服务降级范围不当:将核心功能也降级,导致业务中断(如将登录功能降级)。
  • 熔断与降级混淆:熔断是保护服务间调用,而降级是保护服务自身,两者不能替代(如用熔断代替降级,无法保障服务自身核心功能)。
  • 跨机房容灾数据同步问题:未考虑数据一致性,导致数据不一致(如主从同步延迟导致数据错乱)。
  • 负载均衡算法选择不当:比如在低并发时用轮询,高并发时用权重,但未根据实际场景调整,导致资源分配不合理(如权重过高导致某节点过载)。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1