设计一个70w在线人数弹幕系统所需技术

简介: 设计一个70w在线人数弹幕系统所需技术


带宽压力

http请求压缩

一个http数据包请求由4个部分组成:请求行、请求头标、空行、请求数据。

请求行分为了三个部分。请求方法,请求url与http版本。

请求头行,由关键字值对组成,使用:分隔

空行

请求数据,请求正文中可以包含客户提交的查询字符串信息。

使用http gzip进行将请求中内容进行压缩将传输的内容,解决传输过程中的带宽压力,原理就是把原来的请求头内容压缩,类似于平时使用压缩包,也可以进行请求头结构优化

频率控制

带宽控制:通过添加请求间隔参数(下次请求时间),保证客户端的请求频率服务端可控。以应对突发的流量增长问题,提供有损的服务。

稀疏控制:在弹幕稀疏和空洞的时间段,通过控制下次请求时间,避免客户端的无效请求。

这种可以通过sentinel的链路控制进行配置

弹幕卡顿,丢失问题

Long Polling via AJAX

客户端向服务器发送Ajax请求,服务器接到请求后保持住连接,直到有新消息才返回响应信息,客户端处理完响应信息后再向服务器发送新的请求。这样做的好处是可以省去很多无用的请求。但是需要服务端保持大量的连接。

WebSockets通信

WebSocket。服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

TCP长连接与短连接

短连接环境下,数据交互完毕后,主动释放连接。

长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。

在上文中,由于东南亚的弱网环境,tcp长连接也会因为网络问题断开,所以无论是Long Polling via AJAX还是WebSockets通信都不符合我们的业务需要。

服务拆分

发送弹幕与查询弹幕完全不在同一个量级,通过将业务进行拆分,将发送弹幕逻辑与查询弹幕逻辑拆分。可以让两个服务不互相影响,保证服务的可用性。

引入本地缓存

引入本地缓存的好处是,用户不必等待数据返回,而是读取内存中缓存的数据,大幅度降低调用时延

相关文章
|
18天前
|
开发者
提升用户黏性:现成体育直播源码开发设计哪些关键功能
面对激烈的市场竞争,如何通过关键功能设计提升用户黏性,使之成为用户长期依赖的首选平台,是每一个开发者必须深思的问题。如下参考“东莞梦幻网络科技”现成体育直播源码,为了吸引更多用户并提高他们的黏性,开发哪些关键功能,帮助实现这一目标:
|
18天前
|
存储 弹性计算 关系型数据库
100W用户、8000W流量在线贺卡应用架构如何优化?
100W用户、8000W流量在线贺卡应用架构如何优化?
|
11月前
|
小程序 图形学
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
课程设计项目——基于3D建模技术的车位在线销售平台(移动端)
体育直播在线观看平台开发搭建,建立常态化的促消费机制
随着体育赛事直播平台的崛起,建立常态化的促消费机制已成为运营者们的首要任务。
|
10月前
|
开发框架 JavaScript 数据库
站在源码的角度看多人语音厅房间系统
关于多人语音厅房间系统的管理以及权限,今天来整合交流下。
站在源码的角度看多人语音厅房间系统
|
11月前
|
C++
如何设计一个 70w 在线人数的弹幕系统
如何设计一个 70w 在线人数的弹幕系统
|
11月前
|
前端开发
如何设计一个70w在线人数的弹幕系统
如何设计一个70w在线人数的弹幕系统
|
11月前
|
缓存 运维 前端开发
关于“如何设计一个 70w 在线人数的弹幕系统”的总结
关于“如何设计一个 70w 在线人数的弹幕系统”的总结
|
11月前
|
缓存 运维 前端开发
设计一个70W在线人数的弹幕系统
设计一个70W在线人数的弹幕系统
64 0
|
11月前
|
前端开发 JavaScript 网络协议
分析“如何设计一个 70w 在线人数的弹幕系统”
分析“如何设计一个 70w 在线人数的弹幕系统”
62 0