关注WX: CodingTechWork
介绍
- 负载均衡是在多个服务器之间有效分配网络流量的过程。
- 负载均衡的目的是优化应用程序的可用性,并确保良好的终端用户体验。
- 负载均衡可协助高流量网站和云计算应用程序应对数百万个用户请求,从而保证客户请求不会出现延迟。
优势
可用性
- 负载均衡器在将请求路由到服务器之前会对服务器执行运行状况检查。
- 如果一台服务器即将出现故障,或者因维护或升级而处于脱机状态,负载均衡会自动将工作负载重新路由到正在运行的服务器,以避免服务中断并保持高可用性。
可扩展性
- 负载均衡支持按需、高性能的基础架构,可以处理最重或最轻的网络流量负载。
- 负载均衡器可以根据需要添加或删除物理服务器或虚拟服务器,从而使可扩展性变得简单且自动化。
安全性
- 负载均衡器可以包括 SSL 加密、Web 应用程序防火墙 (WAF) 和多重身份验证 (MFA) 等安全功能。
- 负载均衡器还可以合并到应用程序交付控制器 (ADC) 中以提高应用程序安全性。通过安全地路由或卸载网络流量,负载均衡可以帮助防御分布式拒绝服务 (DDoS) 攻击等安全风险。
原理
- 负载均衡可以通过多种方式实现,如硬件和软件负载均衡。
- 硬件负载均衡器是在本地安装和维护的物理设备。
- 软件负载均衡器是安装在私有服务器上的应用程序或作为托管云服务(云负载均衡)提供的应用程序。
- 负载均衡器的工作原理都是实时调解传入的客户端请求,并确定哪些后端服务器最有能力处理这些请求。为了防止单台服务器过载,负载均衡器会将请求路由到本地或服务器场或云数据中心中托管的任意数量的可用服务器。
- 分配的服务器收到请求后,将通过负载均衡器响应客户端。然后,负载均衡器通过将客户端的 IP 地址与所选服务器的 IP 地址进行匹配来完成服务器到客户端的连接。然后,客户端和服务器就能够通信并执行请求的任务,直到会话完成。
- 如果网络流量出现峰值,负载均衡器可能会使更多服务器联机以满足需求。或者,如果网络活动停滞,负载均衡器可能会减少可用服务器池。它还可以通过将流量路由到缓存服务器来协助网络缓存,在缓存服务器上临时存储之前的用户请求。
算法
循环法
- 该算法使用域名系统 (DNS) 以连续轮换的方式将请求按顺序分配给每个服务器。
- 循环法是最基本的负载均衡方法,因为它只使用每个服务器的名称来决定哪个服务器将接收下一个传入请求。
加权循环法
- 该算法中的每个服务器还被分配了一个"权重"。
- 权重决定哪些服务器应优先于其他服务器来处理传入请求。
- 管理员根据每台服务器的容量和网络需求决定如何对其进行加权。
IP散列
- 计算将传入请求的 IP 地址简化(或散列)为称为散列键的较小值。
- 使用这个唯一的散列键(代表用户的 IP 地址)作为决定如何将请求路由到特定服务器的基础。
最少连接数
- 当收到新的客户端请求时,该算法会优先考虑活动连接数最少的服务器。
- 此方法有助于防止服务器连接过载,并始终保持服务器之间的负载一致。
最短响应时间
- 该算法结合了最少连接数方法和最短服务器平均响应时间。
- 将评估连接数以及服务器执行请求和发送响应所需的时间。
- 活动连接最少的最快服务器将收到传入请求。
类型
网络负载均衡器
- 网络负载均衡器可优化局域网和广域网之间的流量并减少延迟。
- 它们使用 IP 地址和目标端口等网络信息以及 TCP 和 UDP 协议来路由网络流量,并提供足够的吞吐量来满足用户需求。
应用程序负载均衡器
- 这些负载均衡器使用 URL、SSL 会话和 HTTP 头等应用程序内容来路由 API 请求流量。
- 由于多个应用程序服务器中存在重复的功能,因此检查应用程序级内容有助于确定哪些服务器可以快速可靠地满足特定请求。
虚拟负载均衡器
- 随着虚拟化和 VMware 技术的兴起,虚拟负载均衡器现在被用来优化服务器、虚拟机和容器之间的流量。
- Kubernetes 等开源容器编排工具提供虚拟负载均衡功能,可在集群中容器的节点之间路由请求。
全局服务器负载均衡器
- 这种类型的负载均衡器将流量路由到多个地理位置的服务器,以确保应用程序的可用性。
- 用户请求可以分配到最近的可用服务器(近源),或者如果服务器出现故障,则可以分配到具有可用服务器的另一个位置。
- 这种故障转移功能使全局服务器负载均衡成为灾难恢复的重要组成部分。