LVS:# ~+ z2 Y: Q* e$ P
1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低
6 Y% @- i$ ?" l" t; s3 ~9 n0 X& a2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。: `) B2 t& g8 I
2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)
9 U; z* G. q4 x* E3、应用范围比较广,可以对所有应用做负载均衡;8 G* `$ k- O$ R' K
4、不支持正则处理,不能做动静分离。
9 C: F0 c0 z& H) j5、支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接)
) Y/ X2 y% ~! B2 R) a6、配置 复杂,对网络依赖比较大,稳定性很高。7 \' @7 j+ ? c; J+ ?# `
' Z0 m+ O( b3 [# N7 X. }
0 P# s" j' e# c& i% d' c
Ngnix:$ Z g( G9 T: E# t5 p
1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构;% A* d- R& Q/ |6 ~/ i. x: E+ b: o
2、Nginx对网络的依赖比较小,理论上能ping通就就能进行负载功能;
7 Q3 D' W1 o! k3、Nginx安装和配置比较简单,测试起来比较方便;9 p6 |; j+ l! ?' O# f9 R0 e- I3 V
4、也可以承担高的负载压力且稳定,一般能支撑超过1万次的并发;( n- i) i$ F p {# x- t% x: b
5、对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测。
`: t0 R6 c; D2 F* K/ n2 H5 v6、Nginx对请求的异步处理可以帮助节点服务器减轻负载;# }0 Z- s' u; K5 Z5 F7 y. U1 {
7、Nginx仅能支持http、https和Email协议,这样就在适用范围较小。% ? w7 t+ T9 s
8、不支持Session的直接保持,但能通过ip_hash来解决。、对Big request header的支持不是很好,7 \( }: T4 A& r. T& f' Q; f
9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、Ip-hash(Ip哈希)2 V1 j' z; I) i G
10、Nginx还能做Web服务器即Cache功能。" {& F1 E6 T3 V& X% d5 D) u; z% p
5 @" c7 \! E: B/ l& N6 ?
- w! H/ y* `1 P+ J* D0 Z' ?5 l u9 \5 S G* E2 H
HAProxy的特点是:
) s- x5 f( {7 Z/ f( p& g2 s1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
' E6 ]9 X" A. b! R1 \# |$ X8 m+ x/ X2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作3 Z, D j! {0 w6 z' F$ G" J
3、支持url检测后端的服务器出问题的检测会有很好的帮助。 `+ I7 Z; B. w3 L
4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
% R! [# _! q6 [6 |: ^" s; R3 Z- N9 p4 k5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。1 |' n o5 c& O. ^
6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
% t6 U$ {: c5 T0 j$ ^7 _3 |" U) C- y9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)
6 _( o0 V; U0 Y' c9 T9 e10、不能做Web服务器即Cache。8 g2 O6 p$ }0 d4 v; Q, D ]. j
3 n* ~+ d+ y5 g# u) _
* K% S* x8 }, d: ^! E8 T1、网站建设初期,可以选用Nigix/HAproxy作为反向代理负载均衡(或者流量不大都可以不选用负载均衡),因为其配置简单,性能也能满足一般的业务场景。如果考虑到负载均衡器是有单点问题,可以采用Nginx+Keepalived/HAproxy+Keepalived避免负载均衡器自身的单点问题。9 j' U( X( L( [/ B2 {& i, U$ ~" j& _* I
2、网站并发达到一定程度之后,为了提高稳定性和转发效率,可以使用LVS、毕竟LVS比Nginx/HAproxy要更稳定,转发效率也更高。不过维护LVS对维护人员的要求也会更高,投入成本也更大。
, O8 X. _" O4 i. u
* Y9 w" l0 s) X5 [- h2 j7 U, J( {2 _6 G注:Niginx与Haproxy比较:Niginx支持七层、用户量最大,稳定性比较可靠。Haproxy支持四层和七层,支持更多的负载均衡算法,支持session保存等。具体选型看使用场景,目前来说Haproxy由于弥补了一些Niginx的缺点用户量也不断在提升。# M- a( w& j9 L H# V
. t* |% _1 F/ Y+ @
" Y6 Z [% y* ~, _; N1、会话率 :单位时间内的处理的请求数 % c) y3 b; k; w' E& ?
2、会话并发能力:并发处理能力
2 P9 y9 T5 S* r- [, ~3、数据率:处理数据能力 5 P: \4 b$ o$ X5 N* F& P5 A r
经过官方测试统计,haproxy 单位时间处理的最大请求数为20000个,可以同时维护40000-50000个并发连接,最大数据处理能力为10Gbps。综合上述,haproxy是性能优越的负载均衡、反向代理服务器。
4 b1 W. n3 h; _: Q% Y7 P" m2 J0 l9 i( a) c$ e+ x" ]5 F
0 q0 g7 B# `3 G! P* h9 d0 D
HAProxy主要优点: 一、免费开源,稳定性也是非常好,这个可通过我做的一些小项目可以看出来,单Haproxy也跑得不错,稳定性可以与LVS相媲美; 二、根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),这个作为软件级负载均衡,也是比较惊人的; 三、HAProxy可以作为MySQL、邮件或其它的非web的负载均衡,我们常用于它作为MySQL(读)负载均衡; 四、自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警,这个也是我非常喜欢它的原因之一; 五、HAProxy支持虚拟主机。
5 o; P1 c$ f4 q( u5 q7 i: U# |0 x7 X" O0 l9 I: F
2 g0 p. L' A/ c v3 d
|