问题背景
在直播业务中,产品设计为直播业务增加了弹幕,但是会出现卡顿弹幕偏少的问题。需要开发弹幕系统。
启用Http压缩
HTTP压缩是指在web服务器端和浏览器间传输压缩文本内容的方法,压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。http压缩通常是通过在reponse header指定Content-Encoding首部,告诉客户端response的压缩格式,这样客户端才能正确解压。
QPS,每秒查询
QPS:Queries Per Second是衡量信息检索系统(例如搜索引擎或数据库)在一秒钟内接收到的搜索流量的一种常见度量。该术语在任何请求-响应系统中都得到更广泛的使用,更正确地称为每秒请求数(RPS:Request Per Second)。
高性能、高并发、高可用(简称“三高”)要求的系统必须注意其QPS,才能知道何时扩容系统以处理更多请求。
Long Polling via AJAX
AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面的显示进行更新。使用 AJAX 实现“服务器推”与传统的 AJAX 应用不同之处在于:
服务器端会阻塞请求直到有数据传递或超时才返回。
客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。
当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。
WebSockets
Websockets 一种在单个TCP链接上进行全双工通讯的协议,
持久连续
双向通讯
能处理大量连续
菲阻塞(异步)
优点:
Websockets使得客户端和服务器之间的数据交换变得更加简单,允许服务器主动向客户端推送数据,在Websockets API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久的链接,并进行双向数据传输。