一、常见的web集群调度器
1、目前常见的web集群调度器分为软件和硬件
2、软件通常使用开源的LVS、Haproxy、Nginx
3、硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等
LVS、NGINX、HAProxy 的区别
负载均衡性能:
[硬件负载均衡F5] > LVS (最好)> HAProxy (其次) > Nginx (弱于其他两种)
支持的代理类型:
LVS是基于linux内核实现的软负载均衡,支支持4层代理的IP转发,并且不止正则匹配
HAProxy和Nginx都是基于应用程序实现的软负载均衡,都支持4层和7层代理转发,且支持正则匹配。
健康检查方式:
LVS可以配合keepalived实现支持对TCP端口或者URL路径方式的健康检查
Nginx默认只支持被动检查方式,主动健康检查需要安装第三方模块后支持
HAProxy支持TCP端口、URL路径、脚本等方式的健康检查
二、Haproxy应用分析
1、LVS在企业应用中抗负载能力很强,但存在不足
-
LVS不支持正则处理,不能实现动静分离
-
对于大型网站,LVS的实施配置复杂,维护成本相对较高
2、Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理软件
-
适用于负载大的web站点
-
运行在硬件上可支持数以万计的并发连接的连接请求
三、Haproxy调度算法原理
HAProxy负载均衡策略非常多,常见的有如下8种
roundrobin 轮询
static -rr 加权轮询
leastconn 最小连接
source 根据源地址哈希
uri 根据请求的URL地址哈希
url_param 根据请求的URL参数哈希
hdr(NAME) 根据请求头哈希
rdp---cookie(NAME) 根据cookie的key哈希
HAProxy提供了 3种实现会话保持的方式
1.source(源地址哈希)
2.设置cookie
3.会话粘性表stick-table