
1) 【一句话结论】采用“主备+CDN+本地缓存”的混合容灾架构,通过实时同步的备份服务器、全局CDN节点和本地缓存,确保服务器故障或网络中断时课程内容仍能正常访问,核心是故障检测与快速切换,结合多级冗余保障可用性。
2) 【原理/概念讲解】容灾的核心是“故障检测+切换+冗余”,比如服务器故障时,通过心跳检测(定期发送状态包)判断主服务器是否宕机,然后切换到备份服务器。CDN(内容分发网络)通过边缘节点缓存内容,用户访问就近节点,减少延迟,同时边缘节点也作为冗余节点,当主服务器故障时,CDN节点直接提供内容。本地缓存(如浏览器缓存、CDN边缘缓存)进一步加速访问,故障时切换到备用CDN节点。类比:把课程视频比作“货物”,主服务器是“中央仓库”,备份服务器是“备用仓库”,CDN是“区域分仓”,本地缓存是“社区小超市”,用户从最近的“分仓”或“小超市”取货,如果中央仓库(主服务器)断货(故障),就切换到备用仓库(备份服务器)或区域分仓(CDN节点),保证能拿到货物(课程内容)。
3) 【对比与适用场景】
| 方案 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 热备份(实时同步) | 主备服务器实时同步数据,故障时秒级切换 | 数据一致性高,切换时间短(秒级) | 对实时性要求高的系统(如直播、录播系统) | 需要高带宽,成本较高 |
| 冷备份(定期备份) | 定期(如每小时)备份数据,故障时恢复 | 数据一致性低(可能丢失最新数据),恢复时间长(分钟级) | 对实时性要求不高的系统(如静态资源) | 成本较低,适合非关键数据 |
| CDN(内容分发网络) | 通过边缘节点缓存内容,用户访问就近节点 | 减少延迟,提高访问速度,边缘节点作为冗余 | 大流量、全球用户访问的场景 | 需要内容同步,可能存在缓存不一致 |
| 本地缓存(如浏览器缓存、CDN边缘缓存) | 在用户端或边缘节点缓存内容 | 加速访问,减少服务器压力 | 高频访问内容(如热门课程视频) | 需要缓存策略(如LRU),避免缓存失效 |
4) 【示例】
伪代码示例(故障检测与切换流程):
// 主服务器与备份服务器通过心跳协议(如HTTP/HTTPS心跳包)保持连接
// 客户端请求视频时,首先检查本地缓存,若缓存命中则返回;否则检查CDN节点
// 若主服务器响应正常,CDN节点同步内容;若主服务器故障(心跳超时),则切换到备份服务器
// 备份服务器启动后,立即同步主服务器数据(热备份),然后开始服务
// 示例请求:GET /courses/physics/video.mp4
// 请求流程:
// 1. 客户端检查浏览器缓存,未命中
// 2. 请求发送到最近CDN节点(如北京节点)
// 3. CDN节点检查本地缓存,未命中
// 4. 向主服务器发送请求,主服务器响应正常
// 5. CDN节点缓存内容(TTL=3600s)
// 6. 若主服务器故障(心跳超时),客户端请求再次发送到CDN节点,此时CDN节点直接返回缓存内容
5) 【面试口播版答案】(约90秒)
“面试官您好,针对物理课程录播系统的容灾需求,我设计的方案核心是构建‘主备+CDN+本地缓存’的混合架构,确保服务器故障或网络中断时内容仍能访问。首先,服务器层采用热备份,主备服务器实时同步数据,通过心跳检测实现秒级故障切换,比如主服务器宕机时,备份服务器能立即接管服务,保证数据一致性。然后,内容分发网络(CDN)部署全球边缘节点,缓存课程视频,用户访问就近节点,减少延迟,同时边缘节点作为冗余节点,当主服务器故障时,CDN节点直接提供内容,避免用户访问中断。另外,本地缓存(如浏览器缓存、CDN边缘缓存)进一步加速访问,高频访问的视频会缓存到用户端或边缘节点,故障时切换到备用节点。具体来说,当服务器故障时,系统会检测到心跳超时,自动切换到备份服务器,同时CDN节点同步内容,确保用户请求能快速响应。这样,无论是服务器故障还是网络中断,课程内容都能通过就近的冗余节点正常访问,保障教学资源的可用性。”
6) 【追问清单】
7) 【常见坑/雷区】