
1) 【一句话结论】采用“多活+热备份+实时同步”的混合架构,通过负载均衡分发请求、主从服务器实时同步数据、心跳检测自动切换,确保课程录播和直播在服务器故障时数据不丢失且服务快速恢复(故障切换时间<30秒,数据同步延迟<1秒)。
2) 【原理/概念讲解】老师口吻,解释容灾核心逻辑:
高可用(HA)的本质是“故障检测+快速切换”,把服务器比作“备用发电机”——正常时主发电机工作,备用发电机待命;当主发电机故障(服务器宕机),备用发电机立即启动,用户几乎感觉不到断电。具体需解决三方面:
3) 【对比与适用场景】
以“冷备份”与“热备份”为例:
| 方式 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 冷备份 | 定期全量备份(如每日) | 备份数据与主数据有延迟,恢复时需完整恢复 | 非核心数据(如历史课程录播) | 恢复时间长,故障时数据可能丢失 |
| 热备份 | 实时同步(如数据库主从同步) | 数据与主数据实时一致,故障时立即切换 | 核心数据(如直播、实时互动) | 需额外带宽,成本较高 |
4) 【示例】伪代码(故障检测与切换流程):
// 故障检测服务(心跳检测)
function check_server_health(server_id):
try:
response = http_get(f"http://{server_id}:8080/health")
if response.status_code == 200:
return True
else:
return False
except:
return False
// 故障切换逻辑
function handle_failure():
current_server = get_current_active_server()
if not check_server_health(current_server):
standby_server = find_standby_server()
if standby_server:
update_load_balancer_target(standby_server)
notify_app_switch(standby_server)
log("Server failure detected, switching to standby server")
else:
log("No standby server available, service degraded")
5) 【面试口播版答案】
各位面试官好,针对高校在线课程系统的容灾方案,核心思路是构建“多活+热备份”的混合架构,确保课程录播和直播的稳定性。具体来说:
6) 【追问清单】
7) 【常见坑/雷区】