文章目录
一、Haproxy调度算法
1.常见的web集群调度器
- 目前常见的web集群调度器分为软件和硬件
软件通常使用开源的LVS、Haproxy、Nginx
- LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群节点健康检查功能不强,高并发性能没有Haproxy好
硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等
2.Haproxy应用分析
- LVS在企业应用中抗负载能力很强,但存在不足
- LVS不支持正则处理,不能实现动静分离,对于大型网站,LVS的实施配置复杂,维护成本相对较高
- Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理软件
- 适用于负载大的web站点,运行在硬件上可支持数以万计的并发连接的连接请求
3.Haproxy调度算法原理
(1)RR (Round Robin):RR算法是最简单常用的一种算法,即轮询调度
(2)LC(Least Connections):最小连接数算法,根据后端的节点连接数大小动态分配前端请求
(3)SH(Source Hashing):基于来源访问调度算法,用于一些有Session会话记录在服务器端的场景,可以基于来源的IP、Cookie等做集群调度
(4)source:表示根据请求源IP
(5)uri:表示根据请求的URI,做cdn需使用;
(6)url param:表示根据请求的UR1参数’balance url param’requires an URL parameter name
(7)hdr(name):表示根据HTTP请求头来锁定每一次HTTP请求;
(8)rdp-cookie(name):表示根据据cookie (name)来锁定并哈希每一次TCP请求