BACK TO全部项目

EP.04 / 项目案例档案 / 02

Live-Stream Danmaku System

基于 Go 的分布式实时弹幕后端,单节点支持 6 万+ WebSocket 连接和 150 万 QPS 峰值广播吞吐。

GoWebSocketRedisKafka

从问题背景、工程方案与关键取舍出发,完整呈现实现过程和可量化结果。

私有仓库 · 可在沟通时提供更多信息

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。

下一个项目Chatbot Arena Preference Prediction全部项目