主流的负载均衡服务对比LVS、HAProxy和Nginx

 
 

一、LVS的优势:

1、抗负载能力强,因为lvs工作方式的逻辑是非常之简单,而且工作在网络4层仅做请求分发之用,没有流量,所以在效率上基本不需要太过考虑。在我手里的 lvs,仅仅出过一次问题:在并发最高的一小段时间内均衡器出现丢包现象,据分析为网络问题,即网卡或linux2.4内核的承载能力已到上限,内存和 cpu方面基本无消耗。

2、配置性低,这通常是一大劣势,但同时也是一大优势,因为没有太多可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。

3、工作稳定,因为其本身抗负载能力很强,所以稳定性高也是顺理成章,另外各种lvs都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体是非常稳定的。

4、无流量,上面已经有所提及了。lvs仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。没有流量同时也保住了均衡器的IO性能不会受到大流量的影响。

5、基本上能支持所有应用,因为lvs工作在4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库、聊天室等等。

二、LVS特点:

   1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生;

   2.稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)

   3.应用范围比较广,可以对所有应用做负载均衡;

   4.不支持正则处理,不能做动静分离。


常用四种算法:

   1.rr:轮叫,轮流分配到后端服务器;

   2.wrr:权重轮叫,根据后端服务器负载情况来分配;

   3.lc:最小连接,分配已建立连接最少的服务器上;

   4.wlc:权重最小连接,根据后端服务器处理能力来分配。


三、HAProxy特点:

   1.支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;

   2.配置简单,支持url检测后端服务器状态;

   3.仅做负载均衡软件使用,在高并发情况下,处理速度高于nginx;

   4.TCP层多用于Mysql从(读)服务器负载均衡。


四种常用算法

   1.roundrobin:轮询,轮流分配到后端服务器;

   2.static-rr:根据后端服务器性能分配;

   3.leastconn:最小连接者优先处理;

   4.source:根据请求源IP,与Nginx的IP_Hash类似。


四、Nginx特点:

   1.工作在7层,可以对做正则规则处理;(如:针对域名、目录进行分流)

   2.配置简单,能ping通就能进行负载功能,可以通过端口检测后端服务器状态,不支持url检测;

   3.抗高并发,采用epoll网络模型处理客户请求;

   4.只支持HTTP和EMail,应用范围比较少;

   5.nginx主要是HTTP和反向代理服务器,低系统资源消耗。


常用四种算法:

   1.RR:(默认)轮询,轮流分配到后端服务器;

   2.weight:根据后端服务器性能分配;

   3.ip_hash:每个请求按访问ip的hash结果进行分配,并发小时合适,解决session问题;

   4.fair:(扩展策略),默认不被编译nginx内核,根据后端服务器响应时间判断负载情况,选择最轻的进行处理。

猜你喜欢

转载自blog.csdn.net/openbox2008/article/details/80060034
今日推荐