什么是负载均衡?
负载均衡是将网络流量在多台服务器之间高效分配的过程,以优化应用可用性并确保良好的用户体验。
由于高流量网站和云计算应用每天会收到数百万次用户请求,负载均衡是现代应用交付中必不可少的功能。例如,电子商务网站依赖负载均衡来确保网络应用能够从服务器向用户快速传输数据、图片、视频和价格信息,而不会出现延迟或宕机。
负载均衡的工作原理
负载均衡可以通过多种方式实现。硬件负载均衡器是安装在本地的物理设备,需要进行维护;软件负载均衡器则是安装在私有服务器上的应用程序,或作为托管云服务提供(云负载均衡)。
无论哪种方式,负载均衡器都会实时处理客户端的请求,并判断哪台后端服务器最适合处理这些请求。为了防止单台服务器过载,负载均衡器会将请求分配到本地或云数据中心中的多台可用服务器上。
当被分配的服务器接收请求后,它会通过负载均衡器向客户端响应。负载均衡器随后通过匹配客户端 IP 地址与选定服务器的 IP 地址完成服务器与客户端的连接。客户端和服务器即可进行通信,并执行所请求的任务,直到会话结束。
如果网络流量突然增加,负载均衡器可以上线额外的服务器以应对需求;如果流量减少,负载均衡器也可以减少可用服务器的数量。它还可以协助网络缓存,将请求路由到缓存服务器,临时存储之前的用户请求。
负载均衡的优势
可用性
负载均衡器在将请求路由到服务器之前,会对服务器进行健康检查。如果某台服务器即将宕机或因维护升级而下线,负载均衡会自动将工作负载转发到其他正常运行的服务器,避免服务中断并保持高可用性。
可扩展性
负载均衡实现了按需高性能基础设施,可以应对高峰或低谷的网络流量。物理或虚拟服务器可根据需要增减,使扩展变得简单且自动化。
安全性
负载均衡器可包含 SSL 加密、Web 应用防火墙(WAF)、多因素认证(MFA)等安全功能。它们还可以整合到应用交付控制器(ADC)中,提升应用安全性。通过安全地路由或卸载网络流量,负载均衡有助于防御分布式拒绝服务(DDoS)攻击等安全风险。
负载均衡算法
路由请求到特定服务器的方法由负载均衡算法决定。不同算法针对不同场景提供不同功能和优势。
轮询(Round Robin)
该算法使用 DNS 按顺序将请求分配到每台服务器,实现循环分配。它是最基本的负载均衡方法,仅根据服务器名称决定下一个请求的去向。
加权轮询(Weighted Round Robin)
在轮询的基础上,为每台服务器分配一个“权重”,权重决定哪台服务器优先处理请求。管理员可根据服务器容量和网络需求设置权重。
IP 哈希(IP Hash)
该算法将客户端请求的 IP 地址计算(哈希)成一个较小的值,称为哈希键。根据哈希键决定将请求路由到哪台服务器,从而实现基于用户 IP 的请求分配。
最少连接(Least Connections)
该算法优先将请求分配给当前活动连接最少的服务器,有助于防止某台服务器过载,并保持服务器间负载均衡。
最短响应时间(Least Response Time)
该算法结合了最少连接和服务器平均响应时间最短的原则,同时考虑连接数和服务器响应速度,将请求分配给最快且连接最少的服务器。
负载均衡器类型
虽然所有负载均衡器的主要目的都是分发流量,但它们也有特定功能的类型:
网络负载均衡器(Network Load Balancers)
优化本地和广域网的流量,降低延迟。通过 IP 地址、目标端口以及 TCP/UDP 协议路由流量,提供足够的吞吐量满足用户需求。
应用负载均衡器(Application Load Balancers)
基于应用内容(如 URL、SSL 会话、HTTP 头)路由 API 请求。通过分析应用级内容,可快速、可靠地确定哪台服务器可处理特定请求。
虚拟负载均衡器(Virtual Load Balancers)
随着虚拟化和 VMware 技术的发展,虚拟负载均衡器用于优化服务器、虚拟机和容器间的流量。像 Kubernetes 这样的开源容器编排工具提供虚拟负载均衡功能,可在集群中节点间路由请求。
全球服务器负载均衡器(Global Server Load Balancers)
在全球多个地理位置的服务器间路由流量,确保应用可用性。用户请求可分配给最近的可用服务器,或在服务器故障时切换到其他可用服务器位置。其故障切换功能使全球负载均衡在灾难恢复中非常重要。


