负载均衡是大型架构的必备技能,下面我重点来详解负载均衡架构@mikechen
单层负载均衡架构
用户请求直接到达 负载均衡器(如 :Nginx),再由它将请求转发到后端服务。
工作流程:
用户发送 HTTP/HTTPS 请求。
Nginx 接收请求并进行 SSL 卸载、解密(如果是 HTTPS)。
Nginx 根据 URL、HTTP 头等信息进行路由判断。
Nginx 将请求转发给最终的后端服务。
适用场景:
中小规模应用:流量、并发量相对较低,不需要复杂的流量管理。
快速启动:架构简单,部署和配置都非常快。
双层负载均衡架构
为了解决单层架构的单点故障、和性能瓶颈问题,双层负载均衡架构应运而生。
用户请求 | V [L4 负载均衡器集群 (LVS/云LB)] | V [L7 负载均衡器集群 (Nginx/Envoy/HAProxy)] | V [后端应用服务集群]
请求从用户发起,依次经过 L4 层负载均衡、L7 层负载均衡,最后到达后端应用服务集群。
L4 负载均衡器(工作在 TCP/IP 协议层)只处理请求的 网络连接,它不关心 HTTP/HTTPS 的具体内容。
典型实现:LVS(Linux Virtual Server)、云厂商提供的 Layer-4 负载均衡(例如阿里云、AWS 的经典/网络负载均衡)。
L7 负载均衡器(如 Nginx)可以部署在多台廉价的服务器上,形成一个集群。
它们可以专注于处理业务逻辑,实现更精细的流量控制。
多层负载均衡架构
多层负载均衡架构是为解决超大规模、全球化业务挑战而设计的复杂系统。
它在双层架构(L4+L7)的基础上,引入了更多的层次和组件,以实现跨地域容灾、就近接入、和更精细的服务治理。
如下图所示:
整体工作流程,如下:
用户请求 | V [第1层: 全局负载均衡 (GSLB/DNS)] -> 实现跨地域、跨数据中心流量分发 | V [第2层: 边缘负载均衡 (CDN/边缘节点)] -> 静态内容分发,动态请求就近转发 | V [第3层: 数据中心入口 (L4 负载均衡)] -> 处理海量TCP连接,分发至L7集群 | V [第4层: 应用网关 (L7 负载均衡/微服务网关)] -> 集中路由、限流、安全认证 | V [第5层: 服务网格 (Service Mesh)] -> 实现微服务间的智能负载均衡与治理 | V [后端应用服务集群]
多层负载均衡架构,通常是超大型互联网公司为了应对全球化、高并发、和复杂分布式系统挑战而采取的终极解决方案。