51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

假设学校要上线一个在线直播课堂系统,需要支持数百名学生同时在线,如何设计系统架构以保障低延迟和高可用?

广东仲元中学附属学校信息科技难度:中等

答案

1) 【一句话结论】:采用分层架构(CDN+边缘计算+WebRTC实时流处理),通过WebRTC的P2P低延迟通信与信令服务器辅助,结合负载均衡多节点部署,保障数百学生同时在线的低延迟和高可用。

2) 【原理/概念讲解】:同学们,要解决数百学生同时在线的直播低延迟和高可用,核心是拆解为“传输效率”和“系统稳定性”。

  • 低延迟:WebRTC技术基于P2P直接通信(比如两个学生视频通话时,数据直接从A传到B,中间服务器只做信令(连接建立)和媒体交换),延迟仅几十到一百多毫秒。实际中,设备在防火墙后需信令服务器(如coturn)帮助建立连接。
  • 高可用:系统防止单点故障,用Nginx做负载均衡分发请求,多节点部署并同步数据(如Redis缓存用户状态),若某服务器宕机,Nginx自动切换,确保服务不中断。
  • CDN作用:预缓存直播流,用户从最近CDN节点拉流,减少网络跳数,进一步降低延迟。
    类比:CDN像快递智能分仓(离用户近的仓库发货,不用走总仓),WebRTC像实时视频通话(P2P减少中转,就像直接打电话,不用经过运营商交换机)。

3) 【对比与适用场景】:

架构组件定义特性使用场景注意点
WebRTC基于P2P的实时音视频通信技术(含信令、RTP/RTCP、ICE模块)低延迟(毫秒级),支持自然互动,需信令服务器辅助大规模实时互动(如在线课堂、视频会议)P2P连接受防火墙/NAT限制,需STUN/TURN服务器
RTMP/HTTP-FLV传统的流媒体传输协议(服务器推流,客户端拉流)传输稳定,延迟较高(秒级),需CDN加速传统直播,延迟要求不高的场景依赖服务器中转,延迟高,适合低互动直播

4) 【示例】:伪代码展示信令与媒体流处理。
示例:用户A连接信令服务器(coturn),发送本地SDP,信令服务器转发给用户B,用户B处理SDP后建立P2P连接,媒体流通过WebRTC传输。同时,CDN节点预缓存直播流,用户从边缘节点拉流。

// 用户A发起连接请求
POST /signaling/connect
{
  "userId": "student_A",
  "ip": "192.168.1.100",
  "port": 12345
}

// 信令服务器返回初始SDP
{
  "sdp": "v=0...m=video 1234 RTP/AVP 100...",
  "iceServers": ["stun:stun.l.google.com:19302"]
}

// 用户A发送本地SDP
POST /signaling/sendSDP
{
  "userId": "student_A",
  "sdp": "v=0...m=video 1234 RTP/AVP 100..."
}

// 信令服务器转发给用户B
POST /signaling/sendSDP
{
  "userId": "student_B",
  "sdp": "v=0...m=video 1234 RTP/AVP 100..."
}

// 用户B处理SDP后,通过ICE协议建立P2P连接,媒体流直接传输

5) 【面试口播版答案】:
“面试官您好,针对数百学生同时在线的直播课堂系统,保障低延迟和高可用,核心是采用分层架构,结合WebRTC技术和CDN边缘计算。具体来说,低延迟方面,通过WebRTC的P2P直接通信,减少服务器中转,配合信令服务器(如coturn)处理连接建立,延迟控制在200ms以内;高可用则通过Nginx负载均衡分发请求,多节点部署并同步数据(如Redis缓存用户状态),避免单点故障。比如,用户请求时,Nginx将请求转发到最近的媒体服务器,CDN节点预缓存直播流,用户从边缘节点拉流,既能保证低延迟,又能通过多副本实现高可用,满足大规模实时互动需求。”

6) 【追问清单】:

  • 问题1:如何处理P2P连接的防火墙问题?
    回答:通过信令服务器转发,或使用STUN/TURN服务器(如coturn)绕过NAT限制。
  • 问题2:数据同步如何保证?
    回答:使用Redis或分布式数据库,缓存用户实时状态,数据库同步历史数据,确保多节点数据一致。
  • 问题3:系统扩展性如何?
    回答:采用微服务架构,各组件(信令、媒体、CDN)独立扩展,增加媒体服务器实例应对高并发。
  • 问题4:如何监控延迟?
    回答:部署Prometheus+Grafana监控延迟指标,当超过阈值时触发告警。
  • 问题5:备份方案?
    回答:数据备份到异地对象存储(如阿里云OSS),定期全量备份。

7) 【常见坑/雷区】:

  • 坑1:忽略防火墙/NAT问题,仅说WebRTC,实际部署连接失败。
  • 坑2:混淆低延迟和高可用方案,用传统RTMP导致延迟高,或只做高可用没考虑延迟。
  • 坑3:数据同步方案不明确,用数据库同步导致实时性下降。
  • 坑4:缺乏CDN部署,用户从远端拉流延迟高。
  • 坑5:负载均衡算法不当,轮询导致热点服务器过载。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1