四层负载均衡(基于IP+端口的负载均衡)
实现四层负载均衡的软件有:
-
F5:硬件负载均衡器,功能很好,但是成本很高。
-
lvs:重量级的四层负载软件
-
nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活(1.9)
-
haproxy:模拟四层,七层转发,较灵活
七层的负载均衡(基于虚拟的URL或主机IP的负载均衡)
-
在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别来决定是否要进行负载均衡。
-
实现七层负载均衡的软件有:
-
haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
-
nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
-
apache:功能较差
-
Mysql proxy:功能尚可。
-
参考: https://www.cnblogs.com/readygood/p/9757951.html 四层和七层负载均衡的特点及常用负载均衡 nginx, haproxy, Lvs
四层负载与七层负载的区别
四层:
-
基于IP地址加端口,虚拟IP+端口接收请求,然后再分配到真实的服务器
-
配置负载均衡设备上服务类型为tcp/udp,负载均衡设备将只解析到4层,负载均衡设备与client三次握手之后就会和RS建立连接;
-
四层监听关注的重点是长连接的并发连接数
-
类似 路由器
-
复杂的低,容易配置
-
安全性相对要低
-
高性能,无需解析内容
-
缺点: 软件本身不支持正则表达式处理,不能做动静分离
七层:
-
基于URL,虚拟的URL或主机名接收请求,然后再分配到真实的服务器
-
配置负载均衡设备服务类型为http/ftp/https等,负载均衡设备将解析报文到7层,在负载均衡设备与client三次握手之后,只有收到对应七层报文,才会跟RS建立连接。
-
七层监听关注的重点是QPS的性能
-
性能: 中,需要算法识别 URL,Cookie 和 HTTP head 等信息
-
安全性高
-
额外功能 会话保持,图片压缩,等
-
类似代理服务器
-
缺点: 对设备要求高
总结:从上面的对比看来四层负载与七层负载最大的区别就是效率与功能的区别。四层负载架构设计比较简单,无需解析具体的消息内容,在网络吞吐量及处理能力上会相对比较高,而七层负载均衡的优势则体现在功能多,控制灵活强大。在具体业务架构设计时,使用七层负载或者四层负载还得根据具体的情况综合考虑
LVS相关术语
-
DS:Director Server 指的是前端负载均衡器节点
-
RS:Real Server 后端真实工作的服务
-
VIP: 外部 直接面向用户请求,作为用户请求得目标的IP地址
-
DIP:Director Server IP,主要用于内部主机通讯的IP地址
-
RIP:Real Server IP,后端服务器的IP地址
-
CIP:Client IP,访问客户端的IP地址
lvs四种工作模式
-
dr:直连路由模式
-
tun:隧道模式
-
nat:路由转发模式
-
fullnat模式