
1) 【一句话结论】:针对视频直播高带宽场景,采用“CDN边缘节点+核心负载均衡器”的分层架构,通过智能缓存、动态调度算法(如最小连接数)和健康检查机制,实现流量分发与故障自愈,核心是分层调度+容错设计。
2) 【原理/概念讲解】:老师来解释下关键概念。首先看负载均衡器选型,硬件LB(如F5、A10)是专用设备,性能高、低延迟,适合核心业务链路(视频源站这类高流量场景),但成本高、部署复杂;软件LB(如Nginx、HAProxy)是软件实现,部署灵活(云/服务器),可动态调整策略,适合边缘或云环境。CDN的作用是缓存静态资源(视频片段、图片),边缘节点(CDN节点)靠近用户,降低延迟,减少源站压力。流量调度算法方面,最小连接数(优先分配连接数少的节点,避免过载)、加权轮询(按权重分配,如直播流权重更高)是常用方案。故障处理上,健康检查(心跳检测)实时监测服务器状态,故障节点剔除后流量重分配;缓存失效则通过缓存过期时间或ETag验证确保内容一致性。类比的话,就像餐厅点餐:CDN是外卖骑手(就近配送),边缘LB是分店(处理订单),核心LB是总店(分配订单到分店),算法是分店根据订单量(连接数)或优先级(权重)接单。
3) 【对比与适用场景】:
| 类别 | 负载均衡器选型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|---|
| 硬件LB | F5、A10等 | 专用硬件设备 | 高性能、低延迟、支持复杂策略(SSL卸载、会话保持) | 核心业务链路(如视频源站、高并发直播) | 成本高,部署复杂,需专用硬件 |
| 软件LB | Nginx、HAProxy | 软件实现(云/服务器部署) | 灵活配置、可扩展、成本低、支持多种协议(HTTP/RTMP) | 边缘节点、云环境、动态调整策略 | 需服务器资源,受限于硬件性能 |
CDN与边缘节点配合:CDN缓存静态资源(视频片段),边缘节点处理请求,缓存命中则直接返回,未命中则转发至核心LB;核心LB分发至后端服务器。
4) 【示例】:用户请求视频直播流,流程如下:
伪代码(核心LB调度+故障处理):
def dispatch_request(request):
healthy_servers = get_healthy_servers() # 健康检查结果
if not healthy_servers:
return # 无健康服务器,返回错误
server_load = {server: get_connection_count(server) for server in healthy_servers}
target_server = min(server_load, key=server_load.get)
forward_request(request, target_server)
5) 【面试口播版答案】:面试官您好,针对视频直播高带宽需求,我设计的负载均衡策略是分层架构:首先通过CDN边缘节点缓存静态资源(如视频片段),减少源站压力;然后核心负载均衡器(如Nginx)采用最小连接数算法,结合健康检查机制,动态调度流量到后端服务器。具体来说,CDN负责智能路由,将用户请求引导至最近节点,边缘节点缓存热点内容;核心LB实时监测服务器状态(如心跳检测),故障节点会立即剔除,流量重新分配到其他健康节点。算法上,最小连接数确保高并发下低延迟,加权轮询用于不同优先级的流(直播流权重更高)。这样,从用户到边缘,再到核心,层层调度,同时具备容错能力,应对高带宽场景。
6) 【追问清单】:
7) 【常见坑/雷区】: