负载均衡支持哪些负载策略 负载均衡设计方案



文章插图
负载均衡支持哪些负载策略 负载均衡设计方案

文章插图

LVS、HAProxy、Nginx是目前使用最广泛的三种负载均衡软件 。
LVS
Lvs 是Linux Virtual Server的简称 , 即Linux虚拟服务器 , 是负载均衡的一种调度器 , 现在也已经是linux内核标准的一部分 。可见其重要度 。(是我们中国人自己研发的开源软件!)
LVS优点:
1、抗负载能力强:工作在网络4层之上 , 仅作分发之用 , 没有流量的产生 , 这个特点也决定了它在负载均衡软件里的性能最强的 , 对内存和cpu资源消耗比较低 。
2、配置性比较低:这是一个缺点也是一个优点 , 因为没有太多可配置的东西 , 所以并不需要太多接触 , 大大减少了人为出错的几率 。
3、工作稳定:因为其本身抗负载能力很强 , 自身有完整的双机热备方案 , 如LVS+Keepalived , 不过我们在项目实施中用得最多的还是LVS/DR+Keepalived 。
4、无流量:LVS只分发请求 , 而流量并不从它本身出去 , 这点保证了均衡器IO的性能不会受到大流量的影响 。
5、应用范围比较广:因为LVS工作在4层 , 所以它几乎可以对所有应用做负载均衡 , 包括http、数据库、在线聊天室等等 。
【负载均衡支持哪些负载策略 负载均衡设计方案】LVS的缺点:
1、软件本身不支持正则表达式处理 , 不能做动静分离;而现在许多网站在这方面都有较强的需求 , 这个是Nginx/HAProxy+Keepalived的优势所在 。
2、如果是网站应用比较庞大的话 , LVS/DR+Keepalived实施起来就比较复杂了 , 特别后面有Windows Server的机器的话 , 如果实施及配置还有维护过程就比较复杂了 , 相对而言 , Nginx/HAProxy+Keepalived就简单多了 。
LVS工作模式:
LVS常用的工作模式有DR模式、TUN模式、以及NAT模式
LVS无论NAT及DR模式 , 均要求VS和RS在同一个网段内 , NAT需要把VS当作各个RS的默认网关 ,  DR模式采用修改mac地址直接从数据链路层转发、要求必须在同一个物理网段内 。
Nginx
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 , 在BSD-like 协议下发行 。其特点是占有内存少 , 并发能力强 。目前国内很多大厂网站都在使用Nginx , 比如:百度、京东、新浪、网易、腾讯、淘宝等 。
Nginx优点:
1、支持高并发:可以承担高负载压力且稳定 , 硬件不差的情况下一般能支撑几万次的并发量
2、内存消耗少
3、成本低廉
4、配置简单:Nginx安装与配置比较简单 , 测试也比较方便 , 基本能把错误日志打印出来 。
5、内置健康检查:Nginx可以通过端口检测到服务器内部的故障 , 如根据服务器处理网页返回的状态码、超时等 , 并会把返回错误的请求重新提交到另一个节点 。
6、节省带宽:Nginx对网络稳定性的依赖非常小 , 理论上能ping通就能进行负载功能 。
7、支持热部署:Nginx支持热部署 , 它的自动特别容易 , 并且 , 几乎可以7天*24小时不间断运行 , 
Nginx缺点:
1、适应范围较小 , 仅能支持http、https、Email协议 。
2、对后端服务器的健康检查 , 只支持通过端口检测 , 不支持url来检测 。
Nginx工作模式:
Nginx由内核和模块组成 。Nginx本身做的工作实际很少 , 当它接到一个HTTP请求时 , 它仅仅是通过查找配置文件将此次请求映射到一个location block.而此location中所配置的各个指令则会启动不同的模块去完成工作 , 因此模块可以看做Nginx真正的劳动工作者 。
通常一个location中的指令会涉及一个handler模块和多个filter模块(当然 , 多个location可以复用同一个模块) 。handler模块负责处理请求 , 完成响应内容的生成 , 而filter模块对响应内容进行处理 。用户根据自己的需要开发的模块都属于第三方模块 。正是有了这么多模块的支撑 , Nginx的功能才会如此强大 。
HAProxy
HAProxy提供高可用性、负载均衡 , 以及基于TCP(第四层)和HTTP(第七层)的应用程序代理 。特别适用于那些负载特大的web站点 , 这些站点通常又需要会话保持或七层处理 。
HAProxy优点:
1、支持虚拟主机 , 可以工作在4、7层(支持多网段)
2、支持Session的保持 , Cookie的引导;同时支持通过获取指定的url来检测后端服务器的状态 。
3、单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度 , 在并发处理上也是优于Nginx的 。
4、HAProxy可以对Mysql进行负载均衡 , 对后端的DB节点进行检测和负载均衡 。
5、HAProxy负载均衡策略多样
HAProxy缺点:
1、不支持POP/SMTP协议、SPDY协议
3、不支持HTTP cache功能 。即不能做Web服务器
4、重载配置的功能需要重启进程 , 虽然也是soft restart , 但没有Nginx的reaload更为平滑和友好 。
5、多进程模式支持不够好
HAProxy工作模式:
HAProxy实现了一种事件驱动, 单一进程模型 , 此模型支持非常大的并发连接数 。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制 , 很少能处理数千并发连接 。
LVS、HAProxy、LVS对比
接下来给大家分享一下这三款软件的学习资料 , 大家可以保存收藏!
LVS负载均衡学习资料:
新手快速掌握Nginx无敌教程:
HAProxy学习资料: