BACK TO全部项目
EP.04 / 项目案例档案 / 02
Live-Stream Danmaku System
基于 Go 的分布式实时弹幕后端,单节点支持 6 万+ WebSocket 连接和 150 万 QPS 峰值广播吞吐。
从问题背景、工程方案与关键取舍出发,完整呈现实现过程和可量化结果。
私有仓库 · 可在沟通时提供更多信息
01 / 背景
构建能够应对大规模连接、广播扇出压力和突发持久化负载的实时直播弹幕后端。
02 / 运行时
使用 Go、Gin 与 Gorilla WebSocket,单节点支持 6 万+ 并发连接和 150 万 QPS 峰值广播吞吐。
03 / 并发设计
通过 100 个广播 worker goroutine 分片扇出,使用 sync.Pool 复用切片以降低 GC 压力,并拆分读写锁,避免广播阻塞连接注册。
04 / 分布式能力
通过 Redis Pub/Sub 实现跨服务器房间广播,以带 TTL 的心跳键统计全局在线人数,并使用原子 INCRBY 处理点赞计数。
05 / 持久化
使用支持 Snappy 压缩与批量刷新的 Kafka 异步生产者缓冲写入;消费者组在两分钟内以约 4 万 QPS 将 500 万条积压消息持久化至 MySQL。