
1) 【一句话结论】:采用微服务拆分+分布式架构,通过多级负载均衡(L4/L7)、分层缓存(CDN+Redis+本地缓存)、消息队列(异步解耦请求处理)、多活容灾(异地多活)设计,确保百万级并发下的低延迟、高可用。
2) 【原理/概念讲解】:老师口吻,解释各组件设计思路:
3) 【对比与适用场景】:
负载均衡方案对比(L4 vs L7):
| 方案 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| L4(四层) | 基于IP+端口的流量分发 | 速度快,无状态,仅处理TCP/UDP | 数据库、RPC、流媒体 | 需要会话保持(如Nginx的ip_hash,但可能导致热点服务器过载) |
| L7(七层) | 基于HTTP请求头的路由 | 可路由请求参数(如URL、Cookie) | Web服务、API网关 | 处理复杂路由,延迟稍高,但支持会话保持(如基于Cookie) |
消息队列方案对比(Kafka vs RabbitMQ):
| 方案 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| Kafka | 分布式消息系统,基于日志存储 | 高吞吐(百万级QPS),持久化,支持流处理 | 实时数据流、日志收集、任务队列 | 需要集群管理(如Kafka Broker集群),延迟较低(毫秒级) |
| RabbitMQ | 面向消息的中间件 | 可靠传输,支持多种协议(AMQP),消息持久化 | 微服务解耦、任务调度 | 集群管理复杂度中等,延迟稍高(几十毫秒) |
4) 【示例】:
请求示例:用户发送问题“今天北京天气如何”,请求路径:
5) 【面试口播版答案】:
面试官您好,针对百万级并发的大模型服务,我设计的是基于微服务+分布式架构的方案。首先,前端通过Nginx的L4负载均衡分发流量,结合L7处理请求路由(如根据请求路径路由到模型推理服务)。缓存方面,采用CDN缓存静态资源,Redis缓存热点数据(如高频问题回复),本地缓存模型推理结果(减少数据库压力)。消息队列用Kafka解耦请求处理,用户请求先入队列,后端消费线程处理,支持高吞吐。容灾上,采用多活部署(主备切换,主故障自动切换),异地多活(跨区域部署,减少延迟)。这样能保证高并发下的低延迟、高可用。
6) 【追问清单】:
7) 【常见坑/雷区】: