什么是四层负载均衡跟七层负载均衡?

前言

现在的软件架构中,一个应用往往会部署多个实例,然后再部署一个负载均衡器,负责将网络中的流量分摊到对应的实例,实现负载均衡。常见的负载均衡器有 Nginx、F5 等。负载均衡中,又分四层负载均衡跟七层负载均衡,那么两者又有什么区别呢?

OSI 模型

介绍什么是四层负载均衡与七层负载均衡之前,先看下图,简单回顾一下 OSI 模型及其各层的作用,位于网络中两个节点的电脑通过 OSI 七层模型进行数据交换什么是四层负载均衡跟七层负载均衡?这里主要提一下运输层跟应用层的作用

  • 运输层用于确保端到端的数据传输,在运输层中,我们能获取到 IP 跟 端口号信息
  • 应用层是网络协议栈的最顶层,直接面向最终用户或应用程序,提供了多种网络服务,如文件传输(FTP)、网页浏览(HTTP/HTTPS)、电子邮件(SMTP/POP3/IMAP)、域名解析(DNS)等。从应用层中,能获取到应用层协议的信息,如 HTTP 协议,就能拿到 HTTP 协议对应的 Host、URL、Header 等信息

什么是四层负载跟七层负载

所谓的四层负载或七层负载,其实就是负载均衡器位于 OSI 模型的哪一层工作,位于第四层(运输层)的叫四层负载均衡;位于第七层(应用层)的叫七层负载均衡

四层负载

四层负载工作于运输层,主要根据 IP 和端口号来分配网络流量,四层负载均衡通过一个 VIP(虚IP) + 端口号接收网络流量,进而根据负载均衡算法,决定将流量转发到后端的哪台服务器上。常见的四层负载均衡设备有 F5、LVS 等

优点:

  • 资源消耗低:相比七层负载,四层负载均衡对系统资源要求比较低
  • 通用性强:适用于所有 TCP/IP 协议的服务

缺点:

  • 功能有限:仅能根据 IP 和端口做简单的负载均衡,无法支持如根据 URL 进行负载均衡,因为 URL 属于应用层的信息

七层负载均衡

七层负载均衡工作于应用层,基于四层的基础上,可以根据应用层的信息,比如 HTTP 的 URL、Cookie、Request Header 等信息,来作出更加智能的转发决策。Nginx 就是常见的七层负载均衡器

优点:

  • 更丰富的负载策略:除了能利用运输层的信息(IP + 端口)进行负载均衡外,还能根据应用层的信息(比如根据 URL、Cookie)进行负载,负载策略更加丰富
  • SSL/TLS 卸载:七层负载均衡可以处理SSL/TLS加密解密,将这一计算密集型任务从应用服务器中卸载出来,减少了服务器负担,同时也简化了证书管理和更新的工作

缺点:

  • 性能影响:由于需要解析应用层数据,处理过程比四层负载均衡更复杂,可能引入更多延迟
  • 资源消耗大:高级功能和深度检查会占用更多的CPU和内存资源

总结

四层负载均衡与七层负载均衡,指的是负载均衡器位于 OSI 模型的哪一层;四层负载均衡功能比较单一,只能根据 IP + 端口号进行流量的转发,优点是简单,资源消耗低。七层负载均衡功能比较丰富,能根据应用层的信息,如请求的 Header、URL 进行流量转发;常见的四层负载均衡器有 F5、LVS,七层负载均衡器为 Nginx

大家以后如果用云服务厂商提供的负载均衡器,如阿里云的 SLB,可以先了解均衡器属于哪一种均衡器,满不满足要求再购买


原文始发于微信公众号(huangxy):什么是四层负载均衡跟七层负载均衡?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/289059.html

(0)
土豆大侠的头像土豆大侠

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!