
1) 【一句话结论】针对课程录制回放的容灾,核心是通过多级冗余(存储、网络、服务器)+ 快速故障切换(秒级切换),结合CDN缓存和分布式存储,确保服务器故障、网络中断时用户仍能从冗余节点获取回放内容,保证访问不中断。
2) 【原理/概念讲解】
要解决服务器故障、网络中断的容灾问题,需理解几个关键概念:
3) 【对比与适用场景】
| 策略 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 主备模式 | 主节点提供服务,备节点热备,故障时切换 | 主动切换,切换延迟可能存在(秒级) | 对切换时间要求不高的场景(如非核心业务) | 备节点资源利用率低,成本较高 |
| 多活模式 | 多个节点同时提供服务,负载均衡 | 无单点故障,切换无延迟 | 对高可用要求极高(如核心业务,如课程回放) | 需要负载均衡和会话同步机制 |
| CDN缓存 | 将内容缓存到边缘节点 | 减少源服务器压力,加速访问 | 对网络延迟敏感的场景(如视频回放) | 需要回源机制,保证内容一致性 |
4) 【示例】
假设课程视频存储在MinIO分布式存储(3副本),CDN(如阿里云CDN)缓存视频到边缘节点。用户请求视频URL:/courses/123/lecture/456.mp4:
伪代码(请求流程):
用户请求视频URL → 负载均衡器检查节点状态 → 节点1健康 → 节点1返回视频流 → CDN回源并缓存 → 用户从CDN获取(下次请求直接命中)
5) 【面试口播版答案】
面试官您好,针对学习通课程录制回放的容灾问题,我的思路是通过“存储冗余+网络加速+服务器多活”的组合方案,确保用户访问不中断。
首先,存储层面采用分布式冗余(如MinIO集群,数据3副本),避免单点故障导致数据丢失;其次,内容分发用CDN,将视频缓存到离用户最近的边缘节点,用户请求时优先从CDN获取,减少网络中断影响;再者,服务器部署多活架构(3个节点),负载均衡器实时监控节点健康,主节点故障时秒级切换到其他节点;最后,结合本地缓存(浏览器或应用层缓存),进一步加速访问。这样,即使服务器故障或网络中断,用户仍能从冗余节点获取回放内容,保证体验。
6) 【追问清单】
7) 【常见坑/雷区】