分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分析相关的知识,希望对你有一定的参考价值。
1:http包头
一个http数据包请求由4个部分组成:请求行、请求头标、空行、请求数据。
- 请求行分为了三个部分。请求方法,请求url与http版本。
- 请求头行,由关键字值对组成,使用:分隔
- 空行
- 请求数据,请求正文中可以包含客户提交的查询字符串信息。
QPS
qps即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
QPS=并发量/平均响应时间。
并发量=QPS*平均响应时间。
http压缩
HTTP压缩是指在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩通常采用gzip压缩算法压缩html、javascript、CSS等文件。
通过http压缩的方式,降低网络传输的数据量,从而提高客服端的访问速度。这种方法会提高服务器cpu的负荷。因为服务器在接收到客户端的http请求后需要检查浏览器是否支持http压缩,如果支持的话,根据配置压缩相应网页文件。
gzip压缩
gzip用于unix系统的文件压缩,我们在linux系统中经常用到的.gz文件,就是gzip格式的。http协议上的gzip编码可以用来改进web应用程序的性能。当客户端访问目标服务器中的网站时,服务器将网页内容压缩后传输到来访的浏览器中显示。对于纯文本内容可以压缩到原大小的40%。以此来提高访问速度。
Long Polling via AJAX
客户端向服务器发送Ajax请求,服务器接到请求后保持住连接,直到有新消息才返回响应信息,客户端处理完响应信息后再向服务器发送新的请求。这样做的好处是可以省去很多无用的请求。但是需要服务端保持大量的连接。
WebSockets通信
WebSocket。服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
TCP长连接与短连接
短连接环境下,数据交互完毕后,主动释放连接。
长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。
在上文中,由于东南亚的弱网环境,tcp长连接也会因为网络问题断开,所以无论是Long Polling via AJAX还是WebSockets通信都不符合我们的业务需要。
服务拆分
上文所给出的案例中,弹幕业务。发送弹幕与查询弹幕完全不在同一个量级,通过将业务进行拆分,将发送弹幕逻辑与查询弹幕逻辑拆分。可以让两个服务不互相影响,保证服务的可用性。
引入本地缓存
引入本地缓存的好处是,用户不必等待数据返回,而是读取内存中缓存的数据,大幅度降低调用时延。
以上是关于分析的主要内容,如果未能解决你的问题,请参考以下文章
Dubbo源码学习--服务发布(ProxyFactoryInvoker)
TPM分析笔记TPM 组织架构(TPM hierarchy)