四层与七层负载均衡实现原理及核心差异

负载均衡是分布式系统的核心组件,作用是将客户端请求均匀分发 到后端多台服务器,提升系统吞吐量、可用性与扩展性。根据工作的网络协议层级 ,可分为四层负载均衡 和七层负载均衡(不存在 "四次负载均衡",应为表述误差)。

二者的划分依据是 OSI 七层网络模型:

  • 四层负载均衡:工作在传输层(TCP/UDP 层),基于 IP 地址和端口号转发请求。
  • 七层负载均衡:工作在应用层(HTTP/HTTPS/FTP 等协议层),基于请求的内容(如 URL、头部信息)转发请求。

一、四层负载均衡(传输层负载均衡)

1. 核心定义

四层负载均衡工作在 OSI 模型的传输层 ,仅识别数据包的源 IP、目的 IP、源端口、目的端口以及 TCP/UDP 协议类型,不关心请求的具体内容。

它的核心逻辑是:基于 IP + 端口的哈希或轮询策略,将数据包转发到后端服务器,自身相当于一个 "智能路由器"。

2. 典型实现技术与工具

  • 硬件设备:F5 BIG-IP、A10 Thunder 等(性能强、成本高,适合大型企业核心业务)。
  • 软件工具:LVS(Linux Virtual Server,Linux 内核集成的高性能四层负载均衡)、HAProxy(可配置为四层模式)、Nginx(_stream 模块支持四层转发)。

3. 工作流程(以 LVS-NAT 模式为例)

  1. 客户端发送请求到四层负载均衡器的 VIP(虚拟 IP),目标端口为业务端口(如 80)。
  2. 负载均衡器根据预设策略(如轮询、加权轮询、源 IP 哈希),选择一台后端真实服务器(RS)。
  3. 负载均衡器修改数据包的目的 IP 为 RS 的 IP,目的端口为 RS 的业务端口,然后转发给 RS。
  4. RS 处理请求后,将响应数据包发送回负载均衡器。
  5. 负载均衡器修改响应数据包的源 IP 为 VIP,源端口为原请求端口,再转发给客户端。

4. 核心特性

特性 具体说明
转发效率 极高,基于内核态转发(如 LVS),几乎无性能损耗,能支撑十万级并发。
会话保持 基于源 IP 哈希实现,相同客户端的请求会转发到同一台后端服务器。
协议支持 支持所有 TCP/UDP 协议,如 HTTP、HTTPS、MySQL、Redis 等。
健康检查 仅做四层健康检查,通过 TCP 握手或 UDP 报文探测后端服务器是否存活,无法感知应用层状态。
透明性 后端服务器无需感知客户端真实 IP(除非配置特殊模式,如 LVS-DR),需将网关指向负载均衡器。

5. 典型适用场景

  • 高并发、低延迟的传输层服务:如 MySQL 主从分离、Redis 集群、游戏服务器 UDP 协议转发。
  • 大规模分布式系统的第一层负载均衡(与七层负载均衡配合,四层做流量分发,七层做内容路由)。

二、七层负载均衡(应用层负载均衡)

1. 核心定义

七层负载均衡工作在 OSI 模型的应用层 ,除了识别四层的 IP + 端口,还能解析应用层协议的具体内容(如 HTTP 的 URL、Host、Cookie、请求头),并基于内容进行精细化转发。

它的核心逻辑是:基于请求内容的特征,将请求路由到最优的后端服务器,自身相当于一个 "应用层代理"。

2. 典型实现技术与工具

  • 软件工具:Nginx(HTTP 模块原生支持七层转发)、HAProxy(默认七层模式,支持 HTTP/HTTPS/HTTP/2)、Traefik(云原生时代的七层负载均衡,自动发现后端服务)。
  • 云服务:阿里云 SLB 七层模式、AWS ALB(应用负载均衡器)。

3. 工作流程(以 Nginx 转发 HTTP 请求为例)

  1. 客户端发送 HTTP 请求到七层负载均衡器的 VIP,目标端口为 80/443。
  2. 负载均衡器解析 HTTP 请求的内容 :如 Host 头(区分不同域名)、URL 路径(如 /api 转发到 API 服务器,/static 转发到静态资源服务器)。
  3. 负载均衡器根据预设的内容路由策略,选择一台后端服务器。
  4. 负载均衡器以客户端身份向后端服务器发起新的 HTTP 请求,获取响应数据。
  5. 负载均衡器将响应数据转发给客户端(可选择是否修改响应内容,如添加响应头)。

4. 核心特性

特性 具体说明
转发效率 低于四层负载均衡,因为需要解析应用层协议(用户态处理),但 Nginx/HAProxy 仍能支撑万级并发。
会话保持 支持更灵活的策略:基于 Cookie 植入 (负载均衡器生成 Cookie,标识后端服务器)、Cookie 黏连(基于客户端已有 Cookie 转发)、URL 参数等。
协议支持 主要支持应用层协议:HTTP、HTTPS、HTTP/2、WebSocket、FTP 等。
健康检查 支持七层健康检查 :不仅检测 TCP 端口是否存活,还会发送模拟请求(如 GET /health),检查响应状态码(如 200 OK),能感知应用层故障(如后端服务 500 错误)。
内容处理 支持URL 重写、请求头修改、SSL 卸载 (负载均衡器解密 HTTPS 请求,后端服务器处理 HTTP 请求)、压缩(对响应数据 Gzip 压缩)等功能。
源 IP 透传 可通过 X-Forwarded-For 请求头,将客户端真实 IP 传递给后端服务器。

5. 典型适用场景

  • 基于内容的路由:如电商网站 /product 路径转发到商品服务器,/order 路径转发到订单服务器。
  • SSL 卸载:集中处理 HTTPS 解密,减少后端服务器的计算开销。
  • 微服务架构:配合服务注册中心,实现基于服务名的负载均衡。
  • 静态资源分离:将静态资源请求(如 CSS、JS、图片)转发到 CDN 或专门的静态服务器。

三、四层与七层负载均衡核心差异对比表

对比维度 四层负载均衡 七层负载均衡
工作层级 传输层(TCP/UDP) 应用层(HTTP/HTTPS 等)
识别信息 源 IP、目的 IP、源端口、目的端口 IP + 端口 + 应用层内容(URL、Cookie、请求头)
转发方式 数据包转发(修改 IP / 端口) 应用层代理(重新发起请求)
性能损耗 极低(内核态处理) 中等(用户态解析协议)
会话保持 基于源 IP 哈希 基于 Cookie、URL 参数、源 IP 等
健康检查 四层检查(TCP 握手 / UDP 探测) 七层检查(模拟请求 + 状态码校验)
核心功能 高并发流量分发 内容路由、SSL 卸载、协议转换
典型工具 LVS、Nginx Stream 模块 Nginx、HAProxy、Traefik
适用场景 传输层服务、高并发场景 应用层服务、内容路由、微服务

四、四层 + 七层负载均衡联动架构

在大规模分布式系统中,通常采用 四层负载均衡 + 七层负载均衡 的分层架构,兼顾性能与灵活性:

  1. 第一层(四层负载均衡 LVS) :对外暴露 VIP,负责将海量客户端请求均匀分发到多台七层负载均衡器(如 Nginx 集群),解决七层负载均衡器的单点瓶颈。
  2. 第二层(七层负载均衡 Nginx) :负责内容路由,根据 URL、Host 等信息,将请求转发到后端应用服务器集群(如 Tomcat、Node.js 集群),同时提供 SSL 卸载、健康检查等功能。
  3. 后端服务器集群:处理具体业务请求,返回响应数据。

0voice · GitHub

相关推荐
wewowilling20 分钟前
认识微服务
java·运维·微服务·springcloud
玖石书28 分钟前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
weifont2 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
拂拉氏3 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Mikko73 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
光依旧3 小时前
发版就掉请求?Spring Boot优雅停机的四步
运维·spring boot·nginx·高可用·优雅停机·mcp server
yichengerp5 小时前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造
天国梦5 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python
信可维6 小时前
自动化操作多平台账号:登录态、双会话与 User Data 的 3 个坑
运维·自动化
龙仔7256 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记