通过利用负载均衡优化和加速HTTP应用

来源:互联网 发布:java与模式 阎宏 pdf 编辑:程序博客网 时间:2024/06/03 03:31

废话不多说,直接上干货:

一、HTTP优化和加速特性带来的优势

【TCP 连接复用(TCP Connection Reuse)】

TCP连接复用技术通过将前端多个客户的HTTP请求复用到后端与服务器建立的一个TCP连接上。这种技术能够大大减小服务器的性能负载,减少与服务器之间新建TCP连接所带来的延时,并最大限度的降低客户端对后端服务器的并发连接数请求,减少服务器的资源占用。

一般情况下,客户端在发送HTTP请求之前需要先与服务器进行TCP三次握手,建立TCP连接,然后发送HTTP请求。服务器收到HTTP请求后进行处理,并将处理的结果发送回客户端,然后客户端和服务器互相发送FIN并在收到FINACK确认后关闭连接。在这种方式下,一个简单的HTTP请求需要十几个TCP数据包才能处理完成。

采用TCP连接复用技术后,客户端(如:ClientA)与负载均衡设备之间进行三次握手并发送HTTP请求。负载均衡设备收到请求后,会检测服务器是否存在空闲的长连接,如果不存在,服务器将建立一个新连接。当HTTP请求响应完成后,客户端则与负载均衡设备协商关闭连接,而负载均衡则保持与服务器之间的这个连接。当有其它客户端(如:ClientB)需要发送HTTP请求时,负载均衡设备会直接向与服务器之间保持的这个空闲连接发送HTTP请求,避免了由于新建TCP连接造成的延时和服务器资源耗费。

HTTP 1.0中,客户端的每一个HTTP请求都必须通过独立的TCP连接进行处理,而在HTTP 1.1中,对这种方式进行了改进。客户端可以在一个TCP连接中发送多个HTTP请求,这种技术叫做HTTP复用(HTTP Multiplexing)。它与TCP连接复用最根本的区别在于,TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持。

有些用户和厂商喜欢采用连接复用率来评判一个负载均衡设备的TCP连接复用技术的好坏。一般来说,TCP连接复用率是指一段时间内负载均衡设备成功处理的客户端HTTP请求总数与这段时间负载均衡与服务器之间建立的TCP连接总数的比值。但是, TCP连接复用率和应用的特点、服务器设置、计算周期以及请求的发送模式等也有很大的关系,不同的应用环境下计算出来的TCP连接复用率会有很大的差异。其实,连接复用效率的关键在于负载均衡设备是否能够及时释放已经空闲的服务器端连接。有些厂商采用发送HTTP响应后等待一定时间,如果这段时间内无数据传输即释放该连接。而等待时间往往是秒级的,对于数据往返时间的毫秒级,其复用效果明显不会很好。最为有效的连接复用技术是在负载均衡设备给客户端发送HTTP响应之后,收到客户端确认ACK数据包即释放该连接。这种方式避免了任何额外的等待时间,理论上没有更高效的复用方法。

TCP缓冲机制

TCP缓冲是为了解决后端服务器网速与客户的前端网络速度不匹配而造成的服务器资源浪费的问题。由于服务器与负载均衡设备之间的网络带宽速率高,时延小,通过将服务器端的请求缓冲在负载均衡设备的缓冲区中,防止由于客户端缓慢的网络链路和较高的时延造成服务器端连接阻塞问题。

通过采用TCP缓冲技术,可以提高服务器端响应时间和处理效率,减少由于通信链路问题给服务器造成的连接负担。另外,由负载均衡设备来处理网络阻塞造成的数据包重传,使每个客户端的流量得到最佳的控制。


如上图所示,客户端与负载均衡之间采用的链路具有较高的时延和较低的带宽,而负载均衡与服务器之间采用时延较低和高带宽的局域网连接。

TCP缓冲技术是L7应用负载均衡的核心,它将服务器与客户端之间的TCP连接分成两个独立的TCP连接,并分别进行处理,以适应两边不同的网络环境。此外,通过TCP缓冲技术,将客户端的HTTP请求完整的接收下来并进行分析,还可以提供一些高级负载均衡的应用功能,如:URL-HashingURL交换(URL-Switching),基于Cookie或会话的连接保持(Cookie/Session Persistence)等等。

HTTP压缩(HTTP Compression)】

HTTP协议在v 1.1中新增了压缩功能,如果客户端浏览器和服务器都支持压缩功能的话,通过客户端和服务器进行协商,对客户端的响应请求进行压缩处理。大幅节省内容传输时所需要的带宽,并加快客户端的响应速度。但是,压缩算法本身需要耗费大量的CPU资源,因此,负载均衡设备通过对HTTP压缩功能进行支持,减轻Web服务器的资源耗费,提高其处理效率。另外,由于负载均衡一般都采用硬件的方式进行压缩,因此,压缩的效率更高。此外,对于一些不支持HTTP压缩功能的老版本的Web服务器,通过启用负载均衡上的压缩功能,可以实现对系统的优化和加速。


由于HTTP压缩采用的是HTTP v1.1协议中支持的标准压缩算法,因此,目前主流的浏览器(如:Internet ExplorerFirefoxOperaNetscape等)均默认支持HTTP v1.1中的压缩功能。对于用户来说,无需修改浏览器配置也不需要安装任何插件。采用负载均衡来代替服务器做压缩,能够大幅节省服务器的资源,可以使服务器专注于应用的处理,从而提高业务处理量。另外,即使服务器不支持HTTP压缩,通过负载均衡也能实现压缩功能。

压缩能力的大小取决于被压缩对象的性质。一般来说,HTTP压缩算法对于文本格式的内容有较好的压缩效率;而对于gif等图片格式的内容,由于本身已经进行过压缩处理,压缩效率并不高。所以,需要负载均衡支持选择性压缩,即可以根据对象的类型进行选择性压缩。

SSL加速(SSL Acceleration

一般情况下,HTTP采用明文的方式在网络上传输,有可能被非法窃听,尤其是用于认证的口令信息等。为了避免出现这样的安全问题,一般采用SSL协议(即:HTTPS)对HTTP协议进行加密,以保证整个传输过程的安全性。在SSL通信中,首先采用非对称密钥技术交换认证信息,并交换服务器和浏览器之间用于加密数据的会话密钥,然后利用该密钥对通信过程中的信息进行加密和解密。

SSL是需要耗费大量CPU资源的一种安全技术。目前,大多数负载均衡设备均采用SSL加速芯片进行SSL信息的处理。这种方式比传统的采用服务器的SSL加密方式提供更高的SSL处理性能,从而节省大量的服务器资源,使服务器能够专注于业务请求的处理。另外,采用集中的SSL处理,还能够简化对证书的管理,减少日常管理的工作量。

【转至:http://virtualadc.blog.51cto.com/3027116/580832/】


0 0
原创粉丝点击