常见问题分析单房间的百万用户同时在线导致的带宽压力弱网络问题性能和可靠性弹幕的及时性比较强以及瞬间大量弹幕 优化方案业务解耦,服务拆分本地缓存,优化高并发读引入限流,优化高并发写滑动窗口(Ring Buffer...,又由于为了用户的优化体验,每一次在用户屏幕上的弹幕最少为15条,也就是15条数据3s内展示完给用户 而15条弹幕+http包头的大小保守为3k, 那么每秒的数据大小约为8Gbps,所以我们该如何解决方案一...,将接收的数据的时间%60,这样就对应了每一秒有哪些弹幕显示,这种方式不用考虑加锁问题,因为是用户本地缓存(用户手机上的缓存),写操作是单线程的,而读是读取之前的数据,不会与写操作的数据产生冲突,如果读写重合的话...,我们可以限制最多只能读取30s之前的数据,这样读写操作操作的数据区域在同一时间内就不会重合,也不会带来线程问题采用推模式 最新的消息可以直接采用长连接实时推送, 因此用户发送弹幕到消息队列后,消费者做两件事一是将消息写到...redis,(可能有人说redis内存会爆,但是这是弹幕系统,弹幕数据每隔一段时间删除即可)二是将消息写到弹幕的推送服务器(推模式),推服务器的作用是从 Redis 中获取用户和直播间的订阅关系以及长连接信息用户连接上下文等信息