负载均衡集群
1.集群是什么
1 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
2 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。
2.负载均衡集群技术
① 负载均衡(Load Balance):负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。
② 负载通常包括应用程序处理负载和网络流量负载,每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。
3.负载均衡集群技术的实现
负载均衡(Load Balance)
负载均衡技术类型:基于 4 层负载均衡技术和基于 7 层负载均衡技术
负载均衡实现方式:硬件负载均衡设备或者软件负载均衡
硬件负载均衡产品:F5 、深信服 、Radware
软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)
4.负载均衡分类
二层负载均衡(mac)
一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
三层负载均衡(ip)
一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应。
四层负载均衡(tcp)
在三层负载均衡的基础上,用ip+port接收请求,再转发到对应的机器。
七层负载均衡(http)
根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。
四层负载均衡(基于IP+端口的负载均衡)
实现四层负载均衡的产品
- F5:硬件负载均衡器,功能很好,但是成本很高。
- lvs:重量级的四层负载软件
- nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活
- haproxy:模拟四层转发,较灵活
七层的负载均衡(基于虚拟的URL或主机IP的负载均衡)
在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别来决定是否要进行负载均衡。
实现七层负载均衡的软件
- haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
- nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
- apache:功能较差
- Mysql proxy:功能尚可。
四层负载与七层负载的区别
四层负载均衡 | 七层负载均衡 | |
---|---|---|
实现方式 | 基于IP+Port的 | 基于虚拟的URL或主机IP等 |
功能类比 | 路由器 | 代理服务器 |
难度 | 低 | 高 |
性能 | 高;无需解析内容 | 中;需要算法识别URL,HTTP head等信息 |
额外功能 | 无 | 会话保持,图片压缩等 |
Lvs、Nginx 负载均衡的五种调度算法。
一,Lvs:
1、静态算法:
rr(轮询调度算法),wrr(权重调度算法),sh(源地址散列),dh(目标地址散
列,把同一个 ip 地址的请求,发送给同一个 server)
2、动态调度算法:
LC(最少连接),wlc(加权最少连接),sed(最短延迟调度),nq(永不排
队,改进的 sed)
二、nginx:
1、rr:轮询算法
(依次将用户的访问请求,平均的分配到后端的 web 集群中每个节点,此种算法不会考虑每个节点的性能,所以比较适用于所有节点的性能一致的情况)
2、wrr:权重算法
(根据设定的权重值,权重值越大,被配到的请求次数也就越多,有效的解决了 rr算法的缺点)
3、ip_hash 算法
(根据用户访问的真实 ip 生成一个 hash 表,此后,同一个 ip 地址的访问请求都将会分配到这个节点上,可以解决 session 会话共享的问题)
4、url_hash
(根据用户访问的 url 的 hash 结果,使每个 url 定向到同一个后端服务器上)
5、fair
(更加智能的负载均衡算法,可以根据页面大小的和加载时间长短智能的进行负载均衡)
常用的负载均衡软件
常用的负载均衡开源软件
nginx,lvs,haproxy
商业的硬件负载均衡设备
F5,Netscale