haproxy及搭建web群集

一、Haproxy调度算法

1.常见的web群集调度器

目前常见的web群集调度器分为软件和硬件

1、软件通常使用开源的LVS、haproxy、Nginx
	LVS性能最好,但是搭建相对复杂;Nginx的upstream支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有Haproxy好
2、硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如:梭子鱼、绿盟等

2.Haproxy应用分析

①LVS在企业应用中抗负载能力很强,但存在不足:
		●LVS不支持正则处理,不能实现动静分离
		●对于大型网站,LVS的实施配置复杂,维护成本相对较高
②Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件
		●适用于负载大的Web站点
		●运行在硬件上可支持数以万计的并发连接的连接请求

3.Haproxy调度算法原理-1

■Haproxy支持多种调度算法,最常用的有3 E种
●RR (Round Robin)
RR算法是最简单最常用的一-种算法,即轮询调度
●理解举例:
◆有三个节点A、B、C
第一个用户访问会被指派到节点A
第二个用户访问会被指派到节点B
第三个用户访问会被指派到节点C
第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡
效果

4.Haproxy调度算法原理-2

■Haproxy支持多种调度算法,最常用的有三种
●LC (Least Connections )
◆最小连接数算法,根据后端的节点连接数大小动态分配前端请求
●理解举例

有三个节点A、B、C,各节点的连接数分别为A:4、B:5、 C:6
第一个用户连接请求,会被指派到A上,连接数变为A:5、B:5、 C:6
第二个用户请求会继续分配到A上,连接数变为A:6、B:5、 C:6; 再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端
◆由于实际情况下A、B、C的连接数会动态释放,很难会出现-样连接数的情况
◆此算法相比较rr算法有很大改进,是目前用到比较多的一-种算法

5.Haproxy调度算法原理-3

■Haproxy支持多种调度算法, 最常用的有三种

●SH (Source Hashing)
◆基于来源访问调度算法,用于- -些有Session会话记录在服务器端的场景, 可以基于来源的IP、Cookie等做集群调度

●理解举例

◆有三个节点A、B、C,第一个用户第一-次访问被指派到了A, 第二个用户第一-次访问被指派到了B
◆当第一个用户第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,只要负载均衡调度器不重启,第一个用户访问都会被指派到A, 第二个用户访问都会被指派到B,实现集群的调度
◆此调度算法好处是实现会话保持,但某些IP访问量非常大时会引起负载不均衡,部分节点访问量超大,影响业务使用

6.HAProxy的主要特性

●可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美:
●最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s;
●支持多达8种负载均衡算法,同时也支持会话保持:
●支持虚机主机功能,从而实现web负载均衡更加灵活:
●支持连接拒绝、全透明代理等独特的功能:
●拥有强大的ACL支持,用于访问控制:
●其独特的弹性二叉树数据结构,使数据结构的复杂性.上升到了0(1),即数据的查速度不会随着数据条目的增加而速度有所下降:
●支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源费,让多个请求在–个tcp连接中完成;
●支持TCP加速,零复制功能,类似于mmap机制;
●支持响应池( response buffering) ;
●支持RDP协议;
●基于源的粘性,类似nginx的ip_hash功能,把来自同一客户端的请求在一定时间始终调度到上游的同一服务器;
●更好统计数据接口,其web接口显示后端集群中各个服务器的接收、发送、拒绝错误等数据的统计信息;
●详细的健康状态检测,web接口中有关于对上游服务器的健康检测状态,并提供一定的管理功能;
●基于流量的健康评估机制:
●基于http认证;
●基于命令行的管理接口;
●日志分析器,可对日志进行分析。

7. HAProxy负载均衡策略

常见的有如下8种:

策略 功能
roundrobin 表示简单的轮询
static-rr 表示根据权重
leastconn 表示最少连接者先处理
source 表示根据请求源IP
uri 表示根据请求的URI,做cdn需使用;
url_ param 表示根据请求的UR1参数’balance url_ param’ requires an URL parameter name
hdr (name) 表示根据HTTP请求头来锁定每一次HTTP请求;
rdp- cookie (name) 表示根据据cookie (name)来锁定并哈希每一次TCP请求。

二.LVS、Nginx、HAproxy的区别

1.LVS、Nginx、HAproxy区别:

●LVS基于Linux操作系统实现软负载均衡,而HAProxy和Nginx是基 于第三方应实现的软负载均衡;
●LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。HAProxy 和Nginx都可以实现4层和7层技术,HAProxy可 提供TCP和HTTP应用的负载均衡综合解决方案:
●LVS因为工作在IS0模型的第四层,其状态监测功能单-一,而HAProxy 在状态监方面功能更丰富、强大,可支持端口、URL、 脚本等多种状
态检测方式:
●HAProxy功能强大,但整体性能低于4层模式的LVS负载均衡。
●Nginx主要用于Web服务器或缓存服务器。Nginx的upstream模块虽然也支持群功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。

2.LVS、Nginx、HAproxy各自优缺点

Nginx的优缺点

Nginx的优点:

●工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、录结构。Nginx正则规则比HAProxy更为强大和灵活。
●Nginx对网络稳定性的依赖非常小,理论上能ping通就就能进行负载功能,LVS网络稳定性依赖比较大,稳定要求相对更高。
●Nginx安装和配置、测试比较简单、方便,有清晰的日志用于排查和管理,LVS配置、测试就要花比较长的时间了。
●可以承担高负载压力且稳定,一般能支撑几万次的并发量,负载度比LVS相对些。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值