• 负载均衡四层和七层的区别(nginx, haproxy,lvs)


    负载均衡四层和七层的区别

    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强大。

  • 相关阅读:
    【Vue3】自定义指令
    javaee ssm框架项目添加分页控件
    Flink 源码解读系列 DataStream 窗口分配器 WinowAssigner
    Java后端面试精选45题
    熔断、限流、降级 —— SpringCloud Alibaba Sentinel
    985毕业的“打工人”,java开发2年被裁,重新出发拿下阿里offer
    易点易动固定资产管理系统:实现全生命周期闭环式管理和快速盘点
    使用C语言实现顺序栈
    MySQL数据库————初识数据库
    Gbase8s CREATE ROW TYPE 语句3
  • 原文地址:https://blog.csdn.net/tongzidane/article/details/125443140