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

设计一个支持千级用户同时在线的在线课程直播系统,需考虑低延迟、高可用、弹性扩展。请描述系统架构、关键技术(如负载均衡、消息队列、缓存)、数据一致性处理(如用户观看记录同步)及容灾方案。

南京大学智能科学与技术学院技术管理人员难度:困难

答案

1) 【一句话结论】
采用微服务分层架构,结合CDN加速、流媒体服务器(如Nginx-RTMP)处理音视频流,通过负载均衡(Nginx/LVS)分发请求,消息队列(Kafka)异步处理用户行为,缓存(Redis)加速热点数据,并设计主从复制+多活容灾方案,确保低延迟、高可用、弹性扩展。

2) 【原理/概念讲解】
系统分为四层:前端(Web/APP)、应用层(用户管理、直播控制)、流媒体层(音视频编码传输)、存储层(视频存储、用户数据)。关键技术解析:

  • 负载均衡:用于分发用户请求,避免单点过载。如Nginx(L7层)根据权重、健康检查将请求转发至后端服务器,类比“交通枢纽”,把用户请求分到不同直播服务器,平衡负载。
  • 消息队列:用于异步处理非实时任务(如用户观看记录同步)。如Kafka(高吞吐、持久化),将用户观看事件存入队列,再由消费者处理,避免实时同步压力,类比“快递中转站”,先暂存再分发。
  • 缓存:加速热点数据访问(如直播列表、用户信息)。如Redis(高并发读写),减少数据库压力,类比“快递柜”,用户查询时先从缓存取,快速响应。
  • 数据一致性:用户观看记录需实时同步,采用“最终一致性”方案——通过消息队列确保顺序处理,避免强一致性导致系统延迟过高。
  • 容灾:多数据中心部署,主从切换(如主数据中心心跳超时,自动切换至备份数据中心),通过DNS或ZooKeeper管理状态。

3) 【对比与适用场景】
以负载均衡为例(Nginx vs LVS):

组件NginxLVS
类型L7(应用层)L4/L7(四层/七层)
优势易配置,支持HTTP/HTTPS,健康检查透明代理,性能高,适合高并发TCP连接
适用场景Web应用、API网关大规模流媒体、高并发音视频传输
注意点需配置健康检查,可能成为单点配置复杂,需内核支持,需监控状态

4) 【示例】
用户请求直播的流程(伪代码):

  • 用户通过Web请求:
    POST /api/live/start
    {
      "userId": "user123",
      "courseId": "course456",
      "token": "auth_token"
    }
    
  • 负载均衡器(Nginx)转发至应用服务器(Tomcat),验证权限后调用流媒体服务器(Nginx-RTMP):
    200 OK
    {
      "streamUrl": "rtmp://cdn.example.com/live/course456",
      "playUrl": "http://cdn.example.com/hls/course456/playlist.m3u8"
    }
    
  • 用户端通过播放器拉取HLS流,观看记录通过Kafka发送至用户行为分析服务,更新数据库。

5) 【面试口播版答案】
设计千级用户直播系统,核心是构建分层架构。前端通过负载均衡(如Nginx)分发请求,应用层处理用户鉴权,流媒体层(如Nginx-RTMP)处理音视频编码传输,CDN加速内容分发。消息队列(如Kafka)用于异步处理用户观看记录,缓存(Redis)加速热点数据。数据一致性通过最终一致性保障,用户观看记录先写入队列,再更新数据库。容灾采用多数据中心部署,主从切换,确保高可用。整体架构兼顾低延迟(流媒体服务器直连CDN)、高可用(负载均衡+多活)、弹性扩展(微服务拆分+容器化)。

6) 【追问清单】

  • 问:如何处理直播流的低延迟?
    答:流媒体服务器采用RTMP/HLS协议,CDN边缘节点缓存,减少网络跳数。
  • 问:消息队列如何保证数据一致性?
    答:使用顺序消费,确保用户观看记录按时间顺序处理,避免乱序。
  • 问:容灾方案中,主从切换的触发条件?
    答:主数据中心健康检查失败(如心跳超时),自动切换至备份数据中心。
  • 问:缓存穿透的解决方案?
    答:设置空值缓存(过期短),结合布隆过滤器过滤无效请求。
  • 问:弹性扩展的具体实现?
    答:通过Kubernetes容器编排,根据负载自动扩容应用服务器和流媒体服务器。

7) 【常见坑/雷区】

  • 忽略流媒体传输协议选择,仅考虑HTTP导致延迟过高。
  • 消息队列积压导致用户观看记录延迟,未评估消费者处理能力。
  • 容灾方案不具体,仅说“多活”未说明切换机制。
  • 数据一致性处理过度复杂,强一致性导致系统延迟。
  • 缓存未设置过期策略,引发缓存雪崩或穿透。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1