7.5 软件级负载均衡器的特点介绍与对比

现在网站发展的趋势对网络负载均衡的要求是:随着网站规模的提升,根据不同的阶段使用不同的技术,如下所示:

一种是通过硬件来进行,常见的硬件有比较昂贵的NetScaler、F5 Big-IP等商用的负载均衡器,它的优点就是性能稳定、模块丰富,并且有专业的维护团队来做维护,缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有使用它的必要;另外一种就是类似于LVS/HAProxy、Nginx的、基于Linux的负载均衡软件策略,这些都是通过软件来实现的,所以费用非常低廉,故而推荐大家采用第二种方案来实施自己网站的负载均衡需求。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事实是我们通过成功上线的许多网站和系统可以发现,软件级别的负载均衡的稳定性也是非常好的,宕机的可能性微乎其微,下面就它们的特点和适用场合分别进行说明。

1.LVS

它是使用集群技术和Linux操作系统实现的一个高性能、高可用服务器,具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感谢章文嵩博士为我们提供如此强大实用的开源软件。

LVS的特点是:

·抗负载能力强、工作在网络四层之上仅作分发之用,DR模式没有流量的产生,这个特点也决定了它在负载均衡软件里的性能是最强的。

·配置性比较低,这是一个缺点也是一个优点,因为没有太多可配置的东西,所以并不需要太多接触,大大减少了人为出错的概率。

·运行稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过我们在项目实施中用得最多的还是LVS/DR+Keepalived,建议大家也多关注下淘宝开发的LVS/FullNAT模式。

·无流量,保证了均衡器IO的性能不会受到大流量的影响。

·应用范围比较广,可以对所有应用做负载均衡。

·软件本身不支持正则处理,不能做动静分离,这个就比较遗憾了;其实现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在。

·如果网站应用比较庞大,实施LVS/DR+Keepalived就会比较复杂,特别是如果后面有Windows Server应用的机器的话,实施、配置及维护过程就会更复杂了,相对而言,Nginx/HAProxy+Keepalived的部署及维护就简单得多了。

2.Nginx

Nginx的特点是:

·工作在网络的七层之上,可以针对HTTP应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是许多朋友喜欢它的原因之一。

·Nginx对网络的依赖性非常小,理论上能ping通就能使用Nginx进行负载功能,这个也是它的优势所在。

·Nginx的安装和配置比较简单,测试起来比较方便。

·Nginx既可以承担很高的负载压力又很稳定,一般能支撑超过几万次的并发量。

·Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等,并且会把返回错误的请求重新提交到另一个节点,不过其中的缺点就是不支持URL来检测。

·Nginx只能支持HTTP和E-mail,这样其适用范围就小了很多,这个是它的弱势。

·Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的Web架构,大有和以前最流行的LAMP架构分庭抗礼之势,在高流量的环境中也有很好的效果。

·如今,Nginx作为Web反向加速缓存变得越来越成熟了,很多朋友都已将其投入生产环境中进行生产了,而且反映效果还不错,速度比传统的Squid服务器更快,有此需求的朋友可以考虑在其合适的工作场景中将其作为反向代理加速器。

3.HAProxy

HAProxy的特点是:

·抗负载能力强,兼备四层和七层负载均衡的作用,可以代替LVS,用于四层负载均衡分发流量之用。

·支持虚拟主机。

·能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作。

·跟LVS一样,本身仅仅只是一款负载均衡软件;单纯从效率上来讲,HAProxy比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。