如何设计一个70W在线人数的弹幕系统分析

简介: 如何设计一个70W在线人数的弹幕系统分析

文章地址:如何设计一个70W在线人数的弹幕系统

站在架构师的角度看待问题,提前思考一个优秀系统所使用的资源性价比,从网络、运维、代码性能等角度考虑。

下面对文章中涉及到的技术进行说明。

带宽优化

1、http压缩

http请求包括:请求行、请求头标、空行、请求数据

压缩过程:浏览器发送Http request 给Web服务器, request 中有Accept-Encoding: gzip, deflate。 (告诉服务器, 浏览器支持gzip压缩)Web服务器接到request后, 生成原始的Response, 其中有原始的Content-Type和Content-Length。Web服务器通过Gzip,来对Response进行编码, 编码后header中有Content-Type和Content-Length(压缩后的大小), 并且增加了Content-Encoding:gzip. 然后把Response发送给浏览器。


解压过程:浏览器接到Response后,根据Content-Encoding:gzip来对Response 进行解码。 获取到原始response后, 然后显示出网页

弹幕卡顿,丢失问题

Long Polling via AJAX

客户端向服务器发送Ajax请求,除非服务器有更新,否则服务器会保留响应,只要服务器有更新,它就会发送更新,然后客户端可以发送另一个请求。缺点是需要来回发送额外的报头数据,导致额外的开销。
WebSockets

Websockets定义为在servers和clients之间的双向连接。意味着servers和clients可以同时交流并发送数据。Web Sockets的重要一点是真实的并发和性能的优化。 在WebSocket API中,servers和clients只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

TCP长连接和短连接

TCP长连接是指再建立完成连接链路的时候,在链路空闲的时候并不结束这条线路,而是一直维持这条链路的连接

TCP短连接则是每次通信结束后,连接中断,下次通信时重新建立连接

可用性:服务拆分

将业务进行拆分,可以让多个服务不互相影响,保证服务的可用性和扩展性。不会因非核心业务服务不可用导致核心业务服务崩溃。

相关文章
|
4天前
|
SQL JavaScript 前端开发
开源!!!自习室在线选座系统!!!
开源!!!自习室在线选座系统!!!
|
4天前
|
前端开发 JavaScript Java
系统化web前端需要技能所占比(通过图表分析来看您是不是一个合格的前端)
系统化web前端需要技能所占比(通过图表分析来看您是不是一个合格的前端)
38 0
|
10月前
|
小程序 图形学
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
|
5月前
【八爪鱼RPA】招聘平台即时回复提醒,让招聘工作更高效!
八爪鱼rpa是一款易操作、无需编程的自动化流程处理工具。它可以帮助招聘平台实现自动回复候选人消息、设置提醒功能并对消息进行分类和整理。通过八爪鱼rpa的应用,招聘平台可以提高回复效率、提升候选人满意度、加快招聘流程,从而实现招聘工作的高效进行。
|
10月前
|
C++
如何设计一个 70w 在线人数的弹幕系统
如何设计一个 70w 在线人数的弹幕系统
|
10月前
|
前端开发
如何设计一个70w在线人数的弹幕系统
如何设计一个70w在线人数的弹幕系统
|
10月前
|
前端开发 JavaScript 网络协议
分析“如何设计一个 70w 在线人数的弹幕系统”
分析“如何设计一个 70w 在线人数的弹幕系统”
61 0
|
10月前
|
缓存 运维 前端开发
关于“如何设计一个 70w 在线人数的弹幕系统”的总结
关于“如何设计一个 70w 在线人数的弹幕系统”的总结
|
10月前
|
缓存 运维 前端开发
设计一个70W在线人数的弹幕系统
设计一个70W在线人数的弹幕系统
64 0
|
10月前
|
缓存 网络协议 前端开发
设计一个70w在线人数弹幕系统所需技术
设计一个70w在线人数弹幕系统所需技术