IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

AX负载均衡配置经验漫谈

2012年06月05日
中国IT运维网/中国信息主管网

  健康检查是负载均衡中最基本的功能,也是整个负载均衡处理过程中最重要的环节。为了确保后端应用的高可用性,负载均衡通过定义的健康检查方法实时的对后端服务器或应用的健康状态进行检测,当后台服务器发生故障的时候,负载均衡会发现这些问题,并把服务器从应用服务组中排出,以避免将正常的客户端请求转发至故障的服务器上,以确保用户的能够正常访问后端的应用。
  有时候,虽然服务器仍在运行,但是因为某种原因,比如:软件编写的漏洞或着相关联的应用中间件或数据库出了问题,导致服务器上运行的应用系统已经不能正常工作。在这种情况下,就需要采用一些能够检测应用状态(有时也称作基于应用内容)的健康检查方法。 

基于ICMP协议的健康检查
  
利用ICMP进行健康检查是负载均衡最常用也是最基本的健康检查方式。负载均衡向被检测的服务器发送一个ICMP Request,如果能收到服务器的ICMP Reply,则说明服务器当前正常运行。一般情况下,ICMP健康检查只能说明服务器正在运行,但是,对服务器上运行的应用却无任何感知,因此,ICMP健康检查常用于一些链路负载均衡的部署环境,在应用服务器负载均衡的环境中,ICMP是不太可靠的。

基于TCP协议的健康检查
  
常见的应用程序都会使用一个固定的监听端口,比如:HTTP运行在80端口,FTP运行在21/20端口、HTTPS运行在443端口等等。因此,TCP健康检查就是负载均衡与对应的服务器应用端口进行TCP三次握手,如果握手成功,则说明服务器上的应用正常工作,如果握手失败,则说明当前服务器运行情况不正常。

基于UDP协议的健康检查
  
相较于TCP,UDP是无连接的协议,尽管协议交互更加简单,但是健康检查方法却并不简单。因为对于TCP来说,只要无法正常建立TCP连接,即可说明服务器端应用服务不正常。但是,利用UDP进行通信时,却并无严格要求服务器在收到UDP请求报文时必须进行确认。因此,UDP健康检查主要是看在发送出UDP的健康检查报文后,是否会收到ICMP unreachable的报文。如果没收到这种报文,就说明应用正常运行;如果收到这种ICMP报文,则说明应用发送了故障。

基于应用内容的健康检查方法
  
利用常见的ICMP、TCP和UDP健康检查方法,尽管能够对服务器的健康状态进行检查,但是,我们有时候会发现,尽管仍然能与服务器建立TCP三次握手,但是,服务器却无法正常响应客户端请求。在这种情况下,我们需要更进一步,采用基于应用内容的健康检查方法。
  例如,对于Web应用服务器,我们可以模拟客户端发送一个HTTP请求,根据响应的内容或响应状态码来判断Web应用服务器的健康状态。

基于脚本的健康检查方法
  
在某些情况下,由于用户的一些应用特殊性,无法用与常规的健康检查方法进行健康检查。例如:在某些链路健康状态检查时,必须采用指定的源地址进行链路的健康检查,在这些情况下,我们可以用一个简单的脚本来解决问题。
  A10的AX上提供了丰富的健康检查方法,从简单的ICMP、TCP、UDP到基于应用内容检测的HTTP、HTTPS、FTP、SIP等等。下面,我们将以A10网络的AX负载均衡为例,来说明这些常见的负载均衡的配置方法。

发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

ARM架构能否撼动x86的地位成为处理器主流?
ARM架构能否撼动x86的地位成为处理器主流?2012年10月29日,AMD宣布除了原有的x86处理器之外,该公司将设计面向多个市场的64...
第三季度服务器市场盘点:思科和戴尔是赢家
第三季度服务器市场盘点:思科和戴尔是赢家根据Gartner和IDC的数据显示,在第三季度服务器市场中,戴尔营收和出货量双双上涨...

本类热点