当一个互联网应用或网站走向成功、迎来海量用户访问时,单台服务器的硬件性能终究会触碰到物理天花板。无论是升级至最高规格的 CPU 还是加满内存,面对双十一式的秒杀洪峰或超大规模流量,单点架构必然会由于负载过高而崩溃。为了打破这一硬件瓶颈,业界演进出了“集群化”思想,而指挥流量精准分配的核心枢纽,就是负载均衡(Load Balancing)技术。
在网络架构中,根据工作在 OSI 模型中的层级不同,主流的软件负载均衡器主要分为“四层负载均衡”与“七层负载均衡”。四层负载均衡以经典的 LVS(Linux Virtual Server)和 F5 硬件为代表,它直接工作在传输层。四层负载均衡器在收到数据包时,仅仅根据报文头部的目标 IP 地址和端口号,通过高效的哈希算法(如轮询、最小连接数、源IP哈希),直接改写报文的 MAC 地址或 IP 地址,将其极其高效地甩给后端的真实业务服务器(Real Server)。由于四层负载均衡不需要深入解包去查看应用层的内容,因此其数据转发吞吐量极其恐怖,是大型互联网架构中最外层的“高吞吐挡箭牌”。
而与之相比,工作在应用层的七层负载均衡(以 Nginx、HAProxy 为代表)则扮演着“智能调度员”的角色。七层负载均衡器必须先与客户端建立完整的 TCP 连接,接收并彻底解析应用层的 HTTP/HTTPS 请求。这意味着,Nginx 可以根据极其精细的业务条件来进行流量分发:例如根据请求的 URL 路径(将 `/static` 的静态请求分发给图片服务器,将 `/api` 的动态请求分发给 Java 后端),或者根据用户请求头中的 User-Agent 区分手机端 and PC 端,甚至根据 Cookie 实现灰度发布与蓝绿部署。尽管七层负载均衡由于需要进行应用层解包,其整体并发吞吐量低于四层,但其高度灵活的业务路由和反向代理策略,使其成为了现代微服务架构和 Web 服务中不可或缺的流量核心。通常,大型数据中心会采用“四层留作总入口,七层精细调度”的黄金组合,共同保障业务的极致可用与弹性扩展。