关于“如何设计一个 70w 在线人数的弹幕系统”的总结

简介: 关于“如何设计一个 70w 在线人数的弹幕系统”的总结

如何设计一个 70w 在线人数的弹幕系统 ?

https://mp.weixin.qq.com/s?__biz=MzkyNTI5NTQ1NQ==&mid=2247511614&idx=1&sn=4eb1147d87bd121ff62853e0adf60dc2&chksm=c1ca580ef6bdd1185fde9ee347ea6c0c669eee8afc0f8b8fdec52808745174b5b8fcb8e67e8b#rd

文章整体分析:

首先介绍了弹幕问题出现的背景,之后将弹幕中具体遇到的问题显示在问题分析中,

之后将逐步解决问题方法进行概述,

以及最后的总结

1.问题的背景:

表明所属地区所属业务以及所需的功能,描述了使用的技术支持以及结果,还有弹幕功能所需要的性能要求

2.描述出现的问题

①带宽的压力 运维提供

②弱网导致的弹幕卡顿、丢失

③性能与可靠性

3.带宽优化的方案:

①.使用Http压缩:

百度百科

HTTP压缩是指在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩通常采用gzip压缩算法压缩HTML、JavaScript、CSS等文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点服务器的负担。

②.Response结构简化

过滤掉无用的响应数据

③.

gzip在HTTP压缩,一种在万维网中加速传输HTML和其他内容的技术。它是在RFC 2016中规定的三种标准HTTP压缩格式之一。这个RFC(征求意见稿)页定义了一种叫做"DEFLATE"的zlib格式,它和gzip格式相同,除了gzip添加了11字节头部和尾部的负载。但是,还是建议使用gzip而不是zlib,因为根据RFC 1950,IE还没有正确的实现该标准,还不能处理zlib格式

④.频率控制:

带宽控制: 请求中添加下次请求时间,保证请求频率可控,

稀疏控制:在弹幕量少的时间段,控制下次请求时间,来避免客户端的无效请求

弹幕卡顿、丢失分析

.使用长轮询方式

来挂起客户端发送的请求,通过事件触发服务器端来进行响应数据

优点为减少轮询

WebSockets 减少请求的控制开销

通过比较两者的业务场景,使用短轮询的方式来进行

短轮询是浏览器每隔一段时间向浏览器发送http请求,服务器端在收到请求后,不论是否有数据更新,都直接进行响应。


  本质上还是浏览器发送请求,服务器接受请求的一个过程,通过让客户端不断的进行请求,使得客户端能够模拟实时地收到服务器端的数据的变化。

可靠与性能:

拆分微服务:

逻辑较为复杂、调用较少的业务与逻辑简单、调用量高的服务拆开

拉取弹幕:按照一定时间段内将读取到的数据按照时间分片放入缓存中,通过一定时间段内的某个索引来进行读取

发送弹幕:在不影响拉去弹幕的情况下来进行正常的发送弹幕

总结:所应用的方案达到了实现的目标

相关文章
|
6天前
|
存储 数据中心 云计算
抖音服务器带宽有多大,为什么能够供那么多人同时在线
抖音通过在全国多地设立数据中心,利用分布式云计算技术,如CDN、OSS等,实现视频数据的高效分发与存储。每个用户就近接入当地数据中心,减轻单点压力,确保高并发下的流畅体验。数据中心间通过高速网络同步数据,保证内容的及时更新与访问。这种架构设计有效支撑了大量用户的同时在线。
22 1
|
2月前
|
存储 前端开发 NoSQL
如何优雅地实现在线人数统计功能:技术干货分享
在现代Web开发中,实时在线人数统计是一个常见且重要的功能,它不仅提升了用户体验,还能为网站运营者提供宝贵的数据支持。今天,我们将深入探讨如何优雅地实现这一功能,结合前端展示、后端处理及数据存储等多个方面,为您呈现一套完整的技术解决方案。
284 5
|
3月前
|
存储 JSON 数据可视化
豆瓣超高评分《扫黑风暴》热评可视化展示
豆瓣超高评分《扫黑风暴》热评可视化展示
57 2
|
6月前
|
SQL JavaScript 前端开发
开源!!!自习室在线选座系统!!!
开源!!!自习室在线选座系统!!!
102 0
|
6月前
|
存储 弹性计算 关系型数据库
100W用户、8000W流量在线贺卡应用架构如何优化?
100W用户、8000W流量在线贺卡应用架构如何优化?
|
存储
统计网站的在线人数
统计网站的在线人数
92 0
|
缓存 运维 前端开发
如何设计一个70W在线人数的弹幕系统文章分析
如何设计一个70W在线人数的弹幕系统文章分析
91 3
|
数据挖掘
直播平台源码开发,信息收发功能搭建
信息发送消息实现代码 import java.util.ArrayList; import java.util.List; 信息接收消息实现代码 public void receiveMessage() { System.out.println("接收消息:");
直播平台源码开发,信息收发功能搭建
如何设计一个 70w 在线人数的弹幕系统
如何设计一个 70w 在线人数的弹幕系统
|
前端开发
如何设计一个70w在线人数的弹幕系统
如何设计一个70w在线人数的弹幕系统
下一篇
无影云桌面