直播间弹幕

设计高并发、低延迟的直播间弹幕系统

系统设计 弹幕 高并发 实时通信

系统演进路线

从轮询聊天室到生产级直播互动平台

第 1 版

单房间轮询

几十个观众时先让页面每 2 秒拉一次消息。

  • HTTP API
  • MySQL 弹幕表
  • 客户端轮询

延迟高,热门房间会把数据库扫穿。

第 2 版

WebSocket 长连接

观众开始抱怨“弹幕慢半拍”,需要把消息主动推到客户端。

  • 连接网关
  • 心跳保活
  • 鉴权
  • 断线重连

网关既管连接又管业务,单机连接数和发送队列成为瓶颈。

第 3 版

房间分片广播

万人直播间一条弹幕要发给几万连接,不能让单网关承担全量广播。

  • 房间路由
  • 网关分片
  • 本机连接表
  • 热点房间隔离

普通弹幕、礼物、管理消息混在一起,高峰时无法取舍。

生产版

分级消息平台

礼物、禁言、抽奖和风控都进入直播间,弹幕系统变成实时互动平台。

  • 消息队列
  • 优先级通道
  • 审核风控
  • 礼物幂等
  • 监控告警

必须用分级、降级和审计保证体验与账务安全。

课程简介

系统总览
直播弹幕系统总览
把弹幕写入、房间广播、礼物消息和高并发治理放在同一条实时链路里。
入口
观众连接
弹幕发送
礼物事件
实时
房间网关
消息广播
限流过滤
治理
热点房间
消息落库
监控告警

欢迎来到”系统设计 - 直播间弹幕”课程。

弹幕系统看起来只是“用户发一句话,所有人看到”,但在万人直播间里,它会变成典型的实时系统设计问题:长连接如何维持?一个房间几万人在线时如何广播?消息能不能丢?礼物和付费互动如何保证一致?敏感词和刷屏如何治理?

这门课从一个普通直播间开始,逐步演进到高并发、低延迟、可治理的弹幕互动系统。

课程会一直跟着同一个直播间演进:第一天只有几十个观众,HTTP 轮询还能工作;第一次上热门后,轮询拖垮数据库,于是接入 WebSocket;万人同时在线后,单网关广播扛不住,于是引入房间分片和消息队列;当礼物、抽奖、禁言、举报都进入直播间,系统最终演进成分级实时互动平台。

学习路线

  1. 弹幕系统概述:明确直播间弹幕的业务目标、延迟指标和消息类型。
  2. 弹幕基础:设计房间、用户、消息、审核和存储的最小模型。
  3. WebSocket 通信:建立长连接网关,处理连接、心跳、鉴权和断线重连。
  4. 高并发弹幕:解决热门房间广播、分片、限流和热点隔离。
  5. 消息队列:用队列解耦发送、审核、分发、落库和统计。
  6. 礼物系统:处理付费礼物、余额扣减、展示动效和一致性。
  7. 互动功能:扩展点赞、投票、连麦、管理员操作等实时互动。
  8. 完整系统:总结最终架构、关键取舍和上线检查清单。

学完后,你应该能从读者视角理解:直播间实时消息系统如何在低延迟、高并发、强互动和安全治理之间做工程取舍。

这门课的目标不是让你背一张架构图,而是让你能回答生产问题:普通弹幕能不能丢,礼物消息为什么不能和普通弹幕同级,热门房间如何不拖垮全站,消息队列积压时如何降级,管理员禁言如何快速生效。

章节