WWW服务是Internet服务系统向最终用户提供的一个重要应用。以前通常采用的方式是WWW服务器由一台硬件配置非常高的服务器来担当,但这样做仍然不能保证它的可靠性、可用性、可维护性:一是因为一台服务器仍作不到容错,保证不了可靠性;二是因为一台服务器的网络带宽有限,保证不了可用性;三是因为当这台服务器进行硬件或软件升级时,不可避免地要中断WWW服务,保证不了可维护性。所以提出了WWW服务器的负载均衡解决方案。
负载均衡一般用于提高WWW服务器的整体处理能力,并提高可靠性、可用性、可维护性,最终目的是用一组低处理能力的主机提供大规模的WWW服务。一般有两种实现方案:DNS轮询方案、第四层交换机方案。以下是它们的比较与分析:
1)DNS轮询方案(DNS Round-Robin)
即多台WWW镜像主机在DNS中对应同一域名,当用户访问WWW,要求DNS服务器解析域名时,DNS服务器按DNS请求的先后顺序把域名依次解析成其中一台WWW主机的IP地址,从而把任务平均分担到数台WWW主机上,来提高WWW服务的整体性能。它的优点是:实现简单、实施容易、成本低;缺点是:不是真正的负载均衡,DNS服务器将HTTP请求平均地分配到后台的WWW服务器上,而不考虑每个WWW服务器当前的负载情况;如果后台的WWW服务器的配置和处理能力不同,最慢的WWW服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;另外未考虑容错,如果后台的某一台WWW服务器出现故障,DNS服务器仍会把DNS请求分配到这台故障服务器上,导致对客户端的不能响应。
2)第四层交换机方案(Lay4 Switch)
在第四层交换机上设置WWW服务的虚拟IP地址(Virtual IP Address),这个虚拟IP地址是DNS服务器中的WWW服务地址,对客户端是可见的。客户端的HTTP请求被第四层交换机接收到后,会基于第四层交换技术实时检测后台WWW服务器的负载,根据设定的算法进行快速交换。它的优点在于:基于第四层交换的原理来实现WWW的负载分担(在第四层交换机上有一专用逻辑处理芯片来负责拆包、检查TCP/UDP端口),效率高;高可靠性的冗余检错机制,实时监测后端WWW服务器的状态和负载情况,支持对服务器双网卡冗余备份的能力;灵活多变的、动态的负载均衡算法。