负载均衡是大型架构的必备中间件,下面我重点来详解负载均衡架构模式@mikechen
四层负载均衡
四层负载均衡工作在 OSI 的传输层,基于 TCP/UDP 协议头信息(如 :IP 地址、端口)进行请求转发。
负载均衡器:充当客户端和后端服务器之间的中间人。
接收客户端的 TCP 或 UDP 连接请求,并根据配置的策略将这些连接转发给后端的某个可用服务器。
典型实现包括 :LVS(IPVS)、硬件设备(F5)、Linux 内核转发。
优点:
-
转发效率高,性能极强(百万级并发);
-
可作为大规模并发访问的前端入口。
缺点:
-
无法根据应用层信息(如 URL、Header)做转发;
-
配置较复杂,维护门槛高;
七层负载均衡
七层负载均衡工作在 OSI 模型的应用层(第七层),能够理解应用层协议的内容。
七层负载均衡器可以基于请求的 URL、HTTP 头、Cookie、Host 字段等信息进行更智能的流量分发和路由决策。
大家熟知的Nginx,就是典型的七层负载均衡:
优点:
-
路由灵活:可按业务字段做转发;
-
支持SSL卸载、压缩、缓存、认证等高级功能;
-
易于监控和日志记录。
缺点:
-
性能略逊于 L4,需要处理更多协议解析;
-
不适合承接极高并发的核心路径。
混合型负载均衡
混合型负载均衡是指在实际应用中,根据不同的需求和场景,同时使用四层、和七层负载均衡技术。
例如:前置 LVS 承载连接,后接 Nginx 做细粒度分发。
┌─────────────┐ │ 用户请求 │ └────┬────────┘ ↓ ┌────────────┐ │ L4负载均衡 │(如 LVS) └────┬───────┘ ↓ ┌──────────────┐ │ L7负载均衡集群 │(如 Nginx) └────┬─────────┘ ↓ ┌───────────────┐ │ 后端应用服务组 │ └───────────────┘
结合 L4 与 L7 负载均衡的优势,分层构建高性能 + 高灵活性的架构。
比如:高并发与复杂路由并存, 可以使用四层负载均衡处理大量的并发连接。
将流量转发到七层负载均衡器集群,再由七层负载均衡器根据应用层规则进行更精细的路由。