如何设计一个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短连接则是每次通信结束后,连接中断,下次通信时重新建立连接

可用性:服务拆分

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

相关文章
|
小程序 搜索推荐 安全
【开题报告】基于uniapp的在线蛋糕商城小程序的设计与实现
【开题报告】基于uniapp的在线蛋糕商城小程序的设计与实现
366 0
|
2月前
|
消息中间件 NoSQL Java
设计了简单高效的弹幕系统!老板直接加薪
先赞后看,南哥助你Java进阶一大半系统最早起源于日本,流行于视频网站。我们认识的初音未来(Hatsune Miku)就是在niconico平台上爆红的!!我是南哥,一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
设计了简单高效的弹幕系统!老板直接加薪
|
2月前
|
存储 前端开发 NoSQL
如何优雅地实现在线人数统计功能:技术干货分享
在现代Web开发中,实时在线人数统计是一个常见且重要的功能,它不仅提升了用户体验,还能为网站运营者提供宝贵的数据支持。今天,我们将深入探讨如何优雅地实现这一功能,结合前端展示、后端处理及数据存储等多个方面,为您呈现一套完整的技术解决方案。
280 5
|
3月前
|
存储 JSON 数据可视化
豆瓣超高评分《扫黑风暴》热评可视化展示
豆瓣超高评分《扫黑风暴》热评可视化展示
57 2
|
小程序 图形学
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
|
6月前
|
SQL JavaScript 前端开发
开源!!!自习室在线选座系统!!!
开源!!!自习室在线选座系统!!!
|
6月前
|
前端开发 测试技术 数据库
电影网上购票系统设计与实现(论文+系统)_kaic
电影网上购票系统设计与实现(论文+系统)_kaic
|
6月前
|
前端开发 JavaScript Java
系统化web前端需要技能所占比(通过图表分析来看您是不是一个合格的前端)
系统化web前端需要技能所占比(通过图表分析来看您是不是一个合格的前端)
77 0
|
缓存 运维 前端开发
如何设计一个70W在线人数的弹幕系统文章分析
如何设计一个70W在线人数的弹幕系统文章分析
89 3
如何设计一个 70w 在线人数的弹幕系统
如何设计一个 70w 在线人数的弹幕系统