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。
4.Nginx优缺点:
- 优点:开源软件,简单易部署;功能强大,七层负载基本可以满足所有需求。
- 缺点:仅支持http,https,Email协议;对后端服务器的检测,仅通过IP+端口来检查,不可以通过URL来检查;不支持会话session保持的一致行,但可以通过IP+HASH来解决。
5.LVS优缺点:
- 优点:工作在4层,仅做分发作用,没有流量产生,因此。负载性能最强,对内存和cpu消耗率更低;
- 缺点:不支持正则表达式,不支持动静分离。
6.haproxy优缺点
- 优点:支持session会话保持一致,四层和七层都支持;支持通过URL来检测后端服务器的状态。
- 缺点:在七层转发支持上,不如nginx强大。