关于“如何设计一个 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请求,服务器端在收到请求后,不论是否有数据更新,都直接进行响应。


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

可靠与性能:

拆分微服务:

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

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

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

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

相关文章
|
3月前
|
存储 弹性计算 关系型数据库
100W用户、8000W流量在线贺卡应用架构如何优化?
100W用户、8000W流量在线贺卡应用架构如何优化?
|
9月前
|
存储
统计网站的在线人数
统计网站的在线人数
64 0
|
缓存 运维 前端开发
如何设计一个70W在线人数的弹幕系统文章分析
如何设计一个70W在线人数的弹幕系统文章分析
74 3
|
11月前
|
JSON 数据格式 Python
桌面壁纸实时展示粉丝数
桌面壁纸实时展示粉丝数
|
数据挖掘
直播平台源码开发,信息收发功能搭建
信息发送消息实现代码 import java.util.ArrayList; import java.util.List; 信息接收消息实现代码 public void receiveMessage() { System.out.println("接收消息:");
直播平台源码开发,信息收发功能搭建
|
前端开发
如何设计一个70w在线人数的弹幕系统
如何设计一个70w在线人数的弹幕系统
|
缓存 运维 前端开发
设计一个70W在线人数的弹幕系统
设计一个70W在线人数的弹幕系统
74 0
|
前端开发 算法 JavaScript
如何设计一个 70w 在线人数的弹幕系统 ?
如何设计一个 70w 在线人数的弹幕系统 ?
59 0
|
前端开发 JavaScript 网络协议
分析“如何设计一个 70w 在线人数的弹幕系统”
分析“如何设计一个 70w 在线人数的弹幕系统”
80 0