这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
直播间弹幕
设计高并发、低延迟的直播间弹幕系统
系统设计 弹幕 高并发 实时通信
系统演进路线
从轮询聊天室到生产级直播互动平台
第 1 版
单房间轮询
几十个观众时先让页面每 2 秒拉一次消息。
- HTTP API
- MySQL 弹幕表
- 客户端轮询
延迟高,热门房间会把数据库扫穿。
第 2 版
WebSocket 长连接
观众开始抱怨“弹幕慢半拍”,需要把消息主动推到客户端。
- 连接网关
- 心跳保活
- 鉴权
- 断线重连
网关既管连接又管业务,单机连接数和发送队列成为瓶颈。
第 3 版
房间分片广播
万人直播间一条弹幕要发给几万连接,不能让单网关承担全量广播。
- 房间路由
- 网关分片
- 本机连接表
- 热点房间隔离
普通弹幕、礼物、管理消息混在一起,高峰时无法取舍。
生产版
分级消息平台
礼物、禁言、抽奖和风控都进入直播间,弹幕系统变成实时互动平台。
- 消息队列
- 优先级通道
- 审核风控
- 礼物幂等
- 监控告警
必须用分级、降级和审计保证体验与账务安全。
课程简介
系统总览
直播弹幕系统总览
把弹幕写入、房间广播、礼物消息和高并发治理放在同一条实时链路里。
入口
观众连接
弹幕发送
礼物事件
实时
房间网关
消息广播
限流过滤
治理
热点房间
消息落库
监控告警
欢迎来到”系统设计 - 直播间弹幕”课程。
弹幕系统看起来只是“用户发一句话,所有人看到”,但在万人直播间里,它会变成典型的实时系统设计问题:长连接如何维持?一个房间几万人在线时如何广播?消息能不能丢?礼物和付费互动如何保证一致?敏感词和刷屏如何治理?
这门课从一个普通直播间开始,逐步演进到高并发、低延迟、可治理的弹幕互动系统。
课程会一直跟着同一个直播间演进:第一天只有几十个观众,HTTP 轮询还能工作;第一次上热门后,轮询拖垮数据库,于是接入 WebSocket;万人同时在线后,单网关广播扛不住,于是引入房间分片和消息队列;当礼物、抽奖、禁言、举报都进入直播间,系统最终演进成分级实时互动平台。
学习路线
- 弹幕系统概述:明确直播间弹幕的业务目标、延迟指标和消息类型。
- 弹幕基础:设计房间、用户、消息、审核和存储的最小模型。
- WebSocket 通信:建立长连接网关,处理连接、心跳、鉴权和断线重连。
- 高并发弹幕:解决热门房间广播、分片、限流和热点隔离。
- 消息队列:用队列解耦发送、审核、分发、落库和统计。
- 礼物系统:处理付费礼物、余额扣减、展示动效和一致性。
- 互动功能:扩展点赞、投票、连麦、管理员操作等实时互动。
- 完整系统:总结最终架构、关键取舍和上线检查清单。
学完后,你应该能从读者视角理解:直播间实时消息系统如何在低延迟、高并发、强互动和安全治理之间做工程取舍。
这门课的目标不是让你背一张架构图,而是让你能回答生产问题:普通弹幕能不能丢,礼物消息为什么不能和普通弹幕同级,热门房间如何不拖垮全站,消息队列积压时如何降级,管理员禁言如何快速生效。