目录
2.微服务架构场景(Kubernetes / Spring Cloud)
3.分布式存储或缓存场景(如 Redis 集群 / 分布式文件)
“负载均衡(Load Balancing)” 是分布式系统、高并发应用、微服务架构和云计算架构中确保系统高可用、高性能和横向扩展能力的核心组件。
一、什么是负载均衡?
负载均衡是一种将用户请求智能分配到多个服务器节点上的技术,从而:
-
提高系统吞吐量(高并发处理能力)
-
避免单点瓶颈或故障(高可用)
-
实现横向扩展(可扩展)
二、负载均衡的三种类型
按部署层级划分:
类型 | 描述 |
网络层负载均衡(L4) | 基于TCP/UDP协议,通过IP地址和端口转发。示例:LVS、F5 |
应用层负载均衡(L7) | 基于HTTP/HTTPS请求内容(如URL、Cookie、Header)转发。示例:Nginx、HAProxy |
DNS负载均衡 | 通过DNS轮询为客户端返回多个IP地址 |
客户端负载均衡 | 客户端自行选择后端节点(如微服务中的 Ribbon、gRPC RoundRobin) |
三、常见负载均衡策略(调度算法)
策略名称 | 原理 | 适用场景 |
轮询(Round Robin) | 请求轮流分配到各个服务器 | 节点性能相近时 |
加权轮询 | 按服务器权重比例分配 | 服务器配置不一致时 |
最少连接数(Least Connections) | 分配给当前连接最少的服务器 | 连接时间不一场景 |
源地址哈希(IP Hash) | 根据请求来源 IP 保持一致性 | 保证会话粘性(如购物车) |
一致性哈希 | 某类请求落到相同服务节点 | 微服务、缓存分片等 |
四、常见负载均衡工具与平台
类别 | 工具/平台 | 说明 |
Web层 | Nginx、HAProxy、Apache HTTPD | 最常见,七层转发 |
四层 | LVS、IPVS、Keepalived | 性能优,适用于高并发系统 |
云平台 | 阿里云 SLB、AWS ELB、腾讯云 CLB | 云原生内置能力 |
应用层 | Spring Cloud LoadBalancer、Feign、Ribbon(废弃) | 微服务内部调用负载均衡 |
容器 | Kubernetes Service、Ingress Controller | 支持服务发现与弹性伸缩 |
五、负载均衡在不同架构中的应用
1.Web 网站高并发访问场景
[用户请求]
↓
[云 SLB/Nginx 负载均衡器]
↓
[多台 Web 服务]
↓
[后端数据库/Redis]