常见的网络集群调度器
<代码>目前常见的网络集群调度器分为软件和硬件,软件通常使用开源的lv, Haproxy, Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼,绿盟等代码>
Haproxy应用分析
<强>■lv在企业应用中抗负载能力很强,但存在不足强>
<代码> lv不支持正则处理,不能实现动静分离 对于大型网站,lv的实施配置复杂,维护成本相对较高代码>
<强>■Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理的软件强>
<代码>特别适用于负载特别大的网络站点 运行在当前的硬件上可支持数以万计的并发连接连接请求代码>
Haproxy调度算法原理
<强> Haproxy支持多种调度算法,最常用的有三种:强>
<代码>●RR (Round Robin) RR算法是最简单最常用的一种——算法,即轮询调度 理解举例 有三个节点A, B, C,第一个用户访问会被指派到节点,第二个用 户访问会被指派到节点B,第三个用户访问会被指派到节点 第四个用户访问继续指派到节点,轮询分配访问请求实现负载均衡效果代码>
<代码>●LC(至少连接) LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求 理解举例 有三个节点A, B, C,各节点的连接数分别为:4,B: 5 C: 6,此时如果有第 一个用户连接请求,会被指派到上,连接数变为:5 B: 5, C: 6 第二个用户请求会继续分配到上,连接数变为:6 B: 5 C: 6;再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端 由于实际情况下A, B, C的连接数会动态释放,很难会出现——样连接数的情况 因此此算法相比较rr算法有很大改进,是目前用到比较多的-种算法代码>
<代码>●SH(源散列) SH即基于来源访问调度算法,此算法用于一些有会话会话记录在服务器端 的场景,可以基于来源的IP,饼干等做集群调度 理解举例 有三个节点A, B, C,第一个用户第一次访问被指派到了,第二个用户第一 次访问被指派到了B 当第一个用户第二次访问时会被继续指派到,第二个用户第二次访问时依旧 会被指派到B,只要负载均衡调度器不重启,第一个用户访问都会被指派到一个, 第二个用户访向都会被指派到B,实现集群的调度 此调度算法好处是实现会话保持,但某些IP访问量非常大时会引起负载不均衡 部分节点访问量超大,影响业务使用代码>
Haproxy配置文件详解
<强> Haproxy配置文件通常分为三个部分强>
<代码>●全球:为全局配置 ●违约:为默认配置 ●听:为应用组件配置代码>
<强>全球配置参数强>
<代码>●日志127.0.0.1 local0:配置日志记录,配置日志记录,ocal0为日 志设备,默认存放到系统日志 ●日志127.0.0.1 local1注意:注意为日志级别通常有24个级别 ●maxconn4096:最大连接数 ●uid 99:用户uid ●99年gid:用户gid 代码>
<强>默认配置项配置默认参数,-般会被应用组件继承,如果在应
用组件中没有特别声明,将安装默认配置参数设置强>
<代码>●日志全球:定义日志为全球配置中的日志定义 ●模式http:模式为http ●选择httplog:采用http日志格式记录日志 ●重试3:检查节点服务器失败连续达到三次则认为节点不可用 ●2000年maxconn:最大连接数 ●5000年contimeout:连接超时时间 ●50000年clitimeout:客户端超时时间 ●50000年srtimeout:服务器超时时间代码>
<强>听配置项目一般为配置应用模块参数强>
<代码>●听appli4-backup 0.0.0.0:10004:定义一-个appli4-backup的 应用 ●选择httpchk/索引。html:检查服务器的index . html文件 选择坚持:强制将请求发送到已经下掉的服务器 )此平衡循环:负载均衡调度算法使用轮询算法 ●服务器inst1 192.168.114 .56:80检查国米2000 fall3:定义在 线节点 服务器inst2和192。168.114.56:81检查国米2000年秋季3备份 :定义备份节点代码>
Haproxy日志管理
<强> Haproxy的日志默认是输出到系统的syslog中,在生产
环境中一般单独定义出来强>