负载均衡是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。
为什么需要负载均衡?
负载均衡的出现主要是为了解决用户在网络服务中面临的以下问题:
-
单台服务器性能不足
中大规模系统/网站访问流量比较大,单台服务器处理能力不足,使用多台服务器提供服务,因此需要负载均衡做流量调度,提升服务能力。
-
业务需要灵活调度
对于访问量巨大的网站/系统,对流量处理调度要求很高,此时需要负载均衡的超强性能+调度算法甚至高级转发能力实现对业务的灵活调度。
-
单点故障
关键系统/网站需要多服务器做负载均衡高可用,避免一台服务器故障业务就受影响,需要负载均衡进行健康检查,可及时发现和屏蔽故障服务。
-
业务对外暴露需要
负载均衡可以提供反向代理能力,通过负载均衡的统一对外提供服务,用户后端服务无需直接对外暴露,提升业务的安全性。
负载均衡是如何工作的?

负载均衡的工作原理示意图如下:
-
负载均衡通过监听网络流量,将请求从客户端传递到负载均衡服务。负载均衡服务接收到请求后,会根据预定义的调度算法,决定将请求分发到哪个后端服务器上。
-
负载均衡服务会维护一个或多个服务器组,其中包含多个后端服务器。负载均衡服务会根据服务器的健康状态和负载情况,选择合适的服务器来接收请求。这样可以确保每个服务器能够均衡地处理请求,避免单个服务器负载过重导致性能下降或服务不可用。
四层/七层负载均衡器区别
-
四层负载均衡 像是一个快递分拣中心 。它只看快递上的地址标签(目标IP和端口),然后迅速将其扔给对应的线路。它不关心包裹里是什么。
-
七层负载均衡 则像是一个智能前台 。它会拆开快递,阅读里面的信件内容(HTTP头、URL、Cookie等),然后根据内容决定交给哪个部门处理(比如把退换货交给售后,把询价单交给销售)。假如需要根据url等转发,比如nginx的各种rewrite都是工作在7层负载均衡器。
核心机制对比
| 对比维度 | 四层负载均衡 (L4) | 七层负载均衡 (L7) |
|---|---|---|
| 工作层级 | 传输层 (TCP/UDP协议) | 应用层 (HTTP/HTTPS/WebSocket等) |
| 处理依据 | IP地址 + 端口号 | 内容 (URL、域名、HTTP头、Cookie、请求参数) |
| 核心机制 | 转发/路由 。 L4设备建立一个透明的数据转发通道。它解析TCP/UDP包,获取目标IP和端口,然后将整个数据包原样转发给后端服务器。 | 代理/交换 。 L7设备会先终结 客户端的连接,解析出应用层内容,然后像客户端一样,新建一个连接向后端服务器请求数据。 |
| 会话保持 | 通常基于源IP地址。 | 支持更高级的方式,如基于Cookie植入,或根据HTTP Header等信息实现。 |
| 安全性 | 防护能力较弱,只能做基础的IP黑白名单或SYN Flood防护。 | 更强。可以深度分析数据包内容,阻挡SQL注入、CC攻击、非法词汇过滤等。 |
| 性能 | 高,延迟低。因为不需要拆包查看内容,数据拷贝少,CPU开销小。 | 相对较低。因为需要解包和重新封装,对计算资源要求高,延迟略高于L4。 |
| 典型产品 | F5硬件,LVS,AWS NLB,阿里云NLB | Nginx,HAProxy,AWS ALB,阿里云CLB (7层模式) |
阿里云负载均衡器类型
阿里云负载均衡服务支持以下类型的负载均衡:
-
应用型负载均衡ALB:专门面向七层,提供超强的业务处理性能,例如HTTPS卸载能力。单实例每秒查询数QPS(Query Per Second)可达100万次。同时ALB提供基于内容的高级路由特性,例如基于HTTP报头、Cookie和查询字符串进行转发、重定向和重写等,是阿里云官方云原生Ingress网关。
-
网络型负载均衡NLB:面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,单实例可以达到1亿并发连接,帮您轻松应对高并发业务。NLB面向海量终端连接、高并发消息服务、音视频传输等业务场景针对性地推出了TCPSSL卸载、新建连接限速、全端口监听等高级特性,在物联网MQTTS加密卸载等场景为用户提供多种辅助手段,是适合IoT业务的新一代负载均衡。
-
传统型负载均衡CLB:支持TCP、UDP、HTTP和HTTPS协议,具备良好的四层处理能力,以及基础的七层处理能力。既能工作在4层,也能工作在7层,具体和配置的协议有关,假如配置的https,http就是7层;如果配置的是tcp(一般作为应用clb,只做简单转发)类似于4层负载均衡器。