背景
产品设计为直播业务增加了弹幕。第一期弹幕使用腾讯云支持,效果并不理想,经常出现卡顿、弹幕偏少等问题。最终促使我们开发自己的弹幕系统。性能要求是需要支持,单房间百万用户同时在线。
问题分析
带宽压力
弱网导致的弹幕卡顿、丢失
性能与可靠性
带宽优化
1、启用Http压缩
2、Response结构简化
3、内容排列顺序优化
4、频率控制
弹幕卡顿、丢失分析
弹幕的实时性如何实现?拉取还是推送?
Long Polling via AJAX
客户端打开一个到服务器端的 AJAX 请求,然后等待响应,服务器端需要一些特定的功能来允许请求被挂起,只要一有事件发生,服务器端就会在挂起的请求中送回响应。如果打开Http的Keepalived开关,还可以节约握手的时间。
可靠与性能
服务拆分
在拉取弹幕服务的一端 ,引入了本地缓存。这样后续的请求走本地内存的读取,降低了调用时延。缩短调⽤链路,同时降低外部依赖的服务故障对业务的影响,
在发送弹幕的一端 ,用户一定时间能看得过来弹幕总量是有限的,所以可对弹幕进行限流,有选择的丢弃多余的弹幕。
版权声明:本文为weixin_44663188原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。