负载均衡四层和七层的区别
1.区别: 四层负载,说的是基于IP+端口的负载均衡; 七层负载,说的是基于WEB请求,URL等应用信息的负载均衡。 同理,还有基于二层和三层的。 二层的就是基于MAC地址,二层负载均衡会通过一个虚拟MAC地址接受请求,然后再分配到真实的MAC地址。 三层负载就是通过一个虚拟IP地址,然后再分配到真实的IP。 四层就是通过虚机的IP+端口接收请求,然后再分配到真实的服务器; 七层就是通过虚机主机名或者URL接收请求,再根据一些规则分配到真实的服务器,常见的应用是nginx。
2.所谓的负载均衡,就是根据请求的信息不同,来决定怎么样转发流量。 四层负载均衡,就是根据请求的ip+端口,根据设定的规则,将请求转发到后端对应的IP+端口上。 七层负载均衡,则是在四层基础上,再去考虑应用层的特征。比如说一个WEB服务器的负载均衡,除了根据IP+80端口来判断之外,还可以根据七层URL,浏览器类别,来决定如何去转发流量。
3.四层交换机主要分析IP层和TCP/UDP层,实现四层流量负载,这种负载不关心七层的应用协议。 七层的交换机除了支持四层之外,还要分析应用层,如HTTP协议、URL、cookie等信息。 四层常见软件是haproxy,LVS,七层常见软件是nginx。
常有负载软件优缺点比较
.Nginx优缺点:
优点:开源软件,简单易部署;功能强大,七层负载基本可以满足所有需求。 缺点:仅支持http,https,Email协议;对后端服务器的检测,仅通过IP+端口来检查,不可以通过URL来检查;不支持会话session保持的一致行,但可以通过IP+HASH来解决。 (nginx做四层代理时编译需要添加 --with-stream模块)
.LVS优缺点:
优点:工作在4层,仅做分发作用,没有流量产生,因此。负载性能最强,对内存和cpu消耗率更低; 缺点:不支持正则表达式,不支持动静分离。
.haproxy优缺点
优点:支持session会话保持一致,四层和七层都支持;支持通过URL来检测后端服务器的状态。支持负载节点开/关 缺点:在七层转发支持上,不如nginx强大。
|