TCP Connection Reuse TCP连接复用( 二 )


内容缓存技术将应用服务器中的一些经常被用户访问的热点内容缓存在负载均衡设备的内存中 。当客户端访问这些内容时,负载均衡设备截获客户端请求,从缓存中读取客户端需要的内容并将这些内容直接返回给客户端 。由于是直接从内存中读取,这种技术能够提高网络用户的访问速度,并大大减轻后端服务器的负载情况 。
内容缓存的工作原理非常简单,我们将通过下图用户访问logo.gif的实例来解释内容缓存的工作过程:
1、当有客户端发起对logo.gif的第一个请求时,负载均衡首先会检查本地缓存中是否存在该对象 。如果不存在这个对象,负载均衡会将这个HTTP请求转发给后端的服务器;
2、服务器收到对logo.gif的HTTP请求后,将图片内容回应给负载均衡设备;
3、负载均衡设备将logo.gif对象缓存在内容缓存中,并将其发送给客户端;
4、后续的其它客户端发起对logo.gif的访问请求时,如果负载均衡检测到内容缓存中已经存在该对象,并确认该对象并未失效的话,负载均衡直接将该对象返回给客户端,而无需服务器再次发送该对象 。

TCP Connection Reuse TCP连接复用

文章插图
图例 2 内容缓存(RAM Caching)
内容缓存技术采用了HTTP协议中的一些标准缓存处理技术,将本应保存在客户端本地浏览器缓存中的内容共享给其他用户 。因此,对于客户端来说,内容缓存技术是完全透明的 。最常见的对象包括:gif/jpg图片,静态的css/js/html等文本文件等 。
TCP缓冲(TCP Buffer)
TCP缓冲是为了解决后端服务器网速与客户的前端网络速度不匹配而造成的服务器资源浪费的问题 。由于服务器与负载均衡设备之间的网络带宽速率高,时延小,通过将服务器端的请求缓冲在负载均衡设备的缓冲区中,防止由于客户端缓慢的网络链路和较高的时延造成服务器端连接阻塞问题 。
通过采用TCP缓冲技术,可以提高服务器端响应时间和处理效率,减少由于通信链路问题给服务器造成的连接负担 。另外,由负载均衡设备来处理网络阻塞造成的数据包重传,使每个客户端的流量得到最佳的控制 。
 
TCP Connection Reuse TCP连接复用

文章插图
【TCP Connection Reuse TCP连接复用】图例 3 TCP缓冲(TCP Buffer)
如上图所示,客户端与负载均衡之间采用的链路具有较高的时延和较低的带宽,而负载均衡与服务器之间采用时延较低和高带宽的局域网连接 。
1、负载均衡收到客户端发来的HTTP请求并将其转发给后端的服务器进行处理;
2、服务器对请求进行处理后,将响应的内容依次返回负载均衡设备,负载均衡设备收到响应的数据包后,会将数据包依次缓存在缓冲区中,服务器的响应速度将依据负载均衡和服务器之间的链路质量;
3、当负载均衡上缓存了第一个响应的数据包后,负载均衡将响应的数据包按次序返回给客户端,此时,响应的速度将依赖于负载均衡与客户端之间的链路质量;
4、当响应内容数据包依次传送给客户端并收到客户端的ACK确认请求后,负载均衡将缓冲区资源释放出来为其它TCP连接使用 。
TCP缓冲技术是L7应用负载均衡的核心,它将服务器与客户端之间的TCP连接分成两个独立的TCP连接,并分别进行处理,以适应两边不同的网络环境 。此外,通过TCP缓冲技术,将客户端的HTTP请求完整的接收下来并进行分析,还可以提供一些高级负载均衡的应用功能,如:URL-Hashing,URL交换(URL-Switching),基于Cookie或会话的连接保持(Cookie/Session Persistence)等等 。
HTTP压缩(HTTP Compression)
HTTP协议在v 1.1中新增了压缩功能,如果客户端浏览器和服务器都支持压缩功能的话,通过客户端和服务器进行协商,对客户端的响应请求进行压缩处理 。大幅节省内容传输时所需要的带宽,并加快客户端的响应速度 。但是,压缩算法本身需要耗费大量的CPU资源,因此,负载均衡设备通过对HTTP压缩功能进行支持,减轻Web服务器的资源耗费,提高其处理效率 。另外,由于负载均衡一般都采用硬件的方式进行压缩,因此,压缩的效率更高 。此外,对于一些不支持HTTP压缩功能的老版本的Web服务器,通过启用负载均衡上的压缩功能,可以实现对系统的优化和加速 。
TCP Connection Reuse TCP连接复用

文章插图
图例 4 HTTP压缩(HTTP Compression)
如上图所示,在负载均衡上实现HTTP压缩功能的流程如下:


推荐阅读