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

设计一个支持百万级并发用户的低延迟直播系统,需要考虑哪些关键技术点和架构设计?

快手产品类难度:困难

答案

1) 【一句话结论】
核心是通过分层架构(推流、处理、分发、终端)结合低延迟协议(如WebRTC、低延迟RTMP)、边缘计算节点、分布式负载均衡,实现百万级并发下的低延迟直播。

2) 【原理/概念讲解】
直播系统的核心流程是“主播推流→流媒体服务器处理→分发网络推送→用户拉流播放”。低延迟的关键在于减少“端到端”延迟,包括传输延迟(网络)、处理延迟(服务器)、分发延迟(边缘)。关键技术点包括:

  • 流媒体协议:低延迟RTMP(实时传输,适合传统直播)、WebRTC(P2P传输,端到端毫秒级延迟,适合实时互动);
  • 边缘计算:将处理节点下沉到用户附近(如城市边缘节点),减少网络跳数,降低延迟;
  • 负载均衡:分布式架构分散百万级并发请求,避免单点故障;
  • 缓存机制:预转码(提前处理多码率流)、预加载(提前缓存用户可能观看的流),减少实时处理压力。

类比:直播系统像“高速物流网络”,主播是“发货方”,边缘节点是“区域中转仓”,用户是“收货方”,低延迟就是让包裹从发货到收货最快,通过中转仓(边缘)减少运输距离,同时用高速通道(低延迟协议)提升传输效率。

3) 【对比与适用场景】

对比项RTMPHLSWebRTC
定义实时消息协议,低延迟推流HTTP Live Streaming,基于HTTP分段传输Web Real-Time Communication,端到端P2P传输
特性依赖TCP,有连接建立时间,低延迟基于HTTP,支持断点续传,延迟较高(秒级)P2P传输,毫秒级延迟,实时互动
使用场景传统直播推流移动端直播、点播低延迟互动直播(如游戏、实时聊天)
注意点需长连接,对网络抖动敏感分段缓存,延迟高需信令服务器,网络质量要求高

4) 【示例】
架构示例(文字描述):

  • 推流层:主播通过客户端推流到边缘节点(如快手边缘节点);
  • 处理层:边缘节点接收流后转码(适配不同终端分辨率)、缓存(短暂存储);
  • 分发层:边缘节点通过CDN将流推送到用户拉流服务器(如HLS服务器);
  • 终端层:用户通过APP拉流播放。

伪代码示例(推流请求处理):

def process_push_stream(stream_data, user_id):
    edge_node = load_balancer.select_edge_node()  # 负载均衡选择边缘节点
    edge_node.receive_rtmp(stream_data)          # 接收RTMP流
    hls_stream = edge_node.transcode_to_hls()    # 转码为HLS
    edge_node.cache_hls(hls_stream)              # 缓存到边缘节点
    cdn.push_hls_to_user(user_id, hls_stream.url) # CDN推送HLS流
    return {"status": "success", "hls_url": hls_stream.url}

5) 【面试口播版答案】
“面试官您好,针对百万级并发低延迟直播系统,核心是要通过分层架构和关键技术点来保障性能。首先,直播系统需要分为推流层、处理层、分发层和终端层。推流层负责主播推流,处理层负责转码和缓存,分发层通过边缘计算和CDN将流推送到用户端,终端层是用户拉流播放。关键技术方面,流媒体协议选择很重要,比如低延迟RTMP或WebRTC,前者适合传统直播,后者适合实时互动;然后是边缘计算,将处理节点下沉到用户附近,减少网络延迟;还有负载均衡,用分布式架构分散百万级并发请求,避免单点故障。另外,缓存机制也很关键,比如预转码、预加载,提前处理用户可能观看的流,减少实时处理压力。总结来说,通过协议优化、边缘下沉、负载均衡和缓存,就能支撑百万级并发低延迟直播。”

6) 【追问清单】

  • 问题1:如果网络出现抖动,如何保证低延迟?
    回答要点:使用抗抖动的协议(如RTMPS加密版),或边缘节点缓存,快速恢复连接。
  • 问题2:边缘节点的部署策略是怎样的?
    回答要点:根据用户地理位置(IP定位)部署边缘节点,动态路由,优先选择离用户最近的节点。
  • 问题3:如何处理直播间的并发请求限流?
    回答要点:使用令牌桶算法等限流器,控制推流和拉流的并发数,避免服务器过载。
  • 问题4:WebRTC和低延迟RTMP在百万级并发下的性能对比?
    回答要点:WebRTC适合实时互动,但P2P传输对网络质量要求高,百万级并发下需混合方案(如WebRTC用于互动,RTMP用于大规模推流)。
  • 问题5:系统的容灾方案?
    回答要点:多区域部署边缘节点,主备切换,数据备份(边缘节点缓存同步到主节点)。

7) 【常见坑/雷区】

  • 坑1:忽略网络延迟的影响,只关注服务器处理能力(如只优化转码速度,而没考虑边缘到用户的网络延迟);
  • 坑2:协议选择错误(如用HLS协议做低延迟直播,导致延迟过高);
  • 坑3:架构分层不清晰(推流、处理、分发混在一起,导致并发处理能力不足);
  • 坑4:忽略P2P的适用场景,盲目使用P2P降低服务器压力(百万级并发下P2P可能不稳定);
  • 坑5:缓存策略不合理(预转码码率过高导致存储压力大,或预加载流过多占用带宽)。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1