负载均衡:L4 与 L7 的区别
更新时间:2026-09-17。网络协议域·实践/分发。L4 的内核实现见 ipvsadm/IPVS,L7 上的多路复用见 gRPC over HTTP/2,缓存层见 CDN。
负载均衡(Load Balancer,LB)把进入的流量分发到多个后端实例,提升容量、可用性(故障摘除)和扩展性。按工作在网络模型的哪一层,常分四层(L4)与七层(L7),它们看到的信息和能力完全不同。
一、核心区别:能不能看懂应用内容
| 维度 | 四层负载均衡(L4) | 七层负载均衡(L7) |
|---|---|---|
| 依据 | IP + 端口(TCP/UDP),不解析内容 | HTTP 方法/URL/Host/Header/Cookie/body |
| 层次 | 传输层 | 应用层 |
| 连接 | 转发/改写,常不终结(DR/TUN)或代理 TCP | 作为反向代理终结客户端连接、再发起连接到后端 |
| 性能 | 高,内核可做(IPVS、DPVS),开销小 | 相对高,但现代代理也很快(Nginx/Envoy) |
| 路由粒度 | 只能到端口/服务 | 可按路径、域名、Header、租户等精细路由 |
| TLS | 通常透传(SSL passthrough)或简单终结 | 常做 SSL 终结、HTTP/2、压缩、WAF |
| 典型软件/设备 | LVS/IPVS、F5、云 NLB、iptables/IPVS(kube-proxy) | Nginx、HAProxy、Envoy、Traefik、云 ALB |
bash
L4:客户端 ──TCP──> [L4 看五元组,选后端,转发] ──TCP──> 后端
L4 基本不关心你发的是 GET /a 还是 /b
L7:客户端 ──HTTP/TLS──> [L7 终结连接、解析请求] ──新连接──> 后端
可以:Host=a.com -> 集群A;/api -> 集群B;Header 灰度 -> 金丝雀二、L4 的三种转发模式(以 LVS/IPVS 为例)
ipvsadm 配置的 IPVS 是典型 L4,三种模式:
- NAT(-m):改写目的/源地址,回程也过 LB,LB 易成带宽瓶颈。
- DR(-g,直连路由):改 MAC 直接投递,响应不经 LB 由后端直返客户端,性能最高,需二层同网段与 lo 绑 VIP/ARP 抑制。
- TUN(-i,IPIP 隧道):可跨网段,后端需解封装。
- 调度算法:rr/wrr(轮询/加权)、wlc(加权最少连接,默认常用)、sh(源地址哈希做会话保持)等。
L4 看不到 URL,所以无法做"按路径分流""按 cookie 灰度",但也因此快且协议无关(可负载 MySQL、gRPC、任意 TCP/UDP)。
三、L7 能做什么
因为解析了 HTTP,七层 LB/反向代理可以:
- 内容路由:按 Host(虚拟主机)、路径(
/api→服务 A,/static→服务 B)、Header、查询参数路由。 - SSL/TLS 终结:在代理统一做证书、HTTPS、HTTP/2/3,后端走明文或短连接,集中管理证书(见 TLS、HTTPS 性能)。
- 会话保持:按 cookie 而非仅源 IP 做粘性(IP 在移动端/NAT 后不可靠,见 NAT)。
- 高级流量管理:灰度/金丝雀、A/B、按权重、流量镜像、限流熔断、重试、超时、认证、WAF、压缩、缓存。
- 可观测:按 URL/状态码生成访问日志、RED 指标、分布式追踪上下文注入。
- 对 HTTP/2/gRPC 这类长连接多路复用流量,L7 能在请求级均衡,而纯 L4 只在连接级(可能导致负载不均)。
四、健康检查与故障摘除
两层都做健康检查,但粒度不同:
- L4:TCP 端口能否连通(有时加 ICMP),检查粗、快。
- L7:可发 HTTP 健康检查路径(
/healthz)按状态码/内容判断,能识别"端口通但应用不健康"(依赖未就绪),还可做优雅上线/下线(connection draining)。
后端实例故障时,LB 停止向其分发,提升可用性;配合注册中心/K8s 探针动态更新成员。
五、常见组合架构
生产中常是 L4 在前 + L7 在后:
bash
客户端 -> 云 NLB/LVS(L4, 高可用、高性能、四层 VIP)
├─ Nginx/Envoy 集群A (L7, 按内容路由/SSL终结/灰度)
└─ Nginx/Envoy 集群B
└─ 应用实例(按 URL/Header 精细分发、健康检查)- 最外层 L4 提供稳定 VIP、极高吞吐、跨可用区分发到一层无状态 L7 代理。
- L7 代理做真正的业务路由与治理。
- 静态热点还可在更前面叠加 CDN/缓存。
六、怎么选
- 只要把连接/端口分发到对等实例、追求极致性能或非 HTTP 协议(数据库、游戏、gRPC 直连、UDP)→ L4。
- 需要按 URL/域名/Header 路由、统一 HTTPS、灰度发布、cookie 会话、鉴权限流、丰富指标 → L7。
- 大规模通常两者叠加:L4 保证入口高性能与高可用,L7 承载应用智能。
相关阅读
L4 内核配置见 ipvsadm,L7 上的长连接见 gRPC/HTTP2,边缘分发见 CDN,TLS 终结见 HTTPS 性能。
总结
L4 负载均衡只看 IP+端口在传输层快速转发(IPVS 的 NAT/DR/TUN、wlc/sh),协议无关、性能高但不能按内容分流;L7 反向代理解析 HTTP,能按 Host/URL/Header/Cookie 路由、统一 TLS 终结与 HTTP/2、做灰度/会话保持/健康检查和可观测,开销略高但智能;生产常用"L4 前置保入口高性能高可用 + L7 后置做内容治理"的组合。