什么是负载平衡算法?
负载平衡器是一种软件或硬件设备,可防止任何一台服务器过载。负载平衡算法是负载平衡器用来在服务器之间分配网络流量的逻辑(算法是一组预定义的规则)。
负载平衡有两种主要方法 。动态负载平衡使用的算法会考虑每个服务器的当前状态并相应地分配流量。静态负载平衡分配流量时不做这些调整。一些静态算法以指定的顺序或随机的方式向一个组中的每个服务器发送等量的流量。
负载平衡算法有哪些不同类型?
动态负载平衡算法
- 最少连接:检查哪些服务器在当时拥有最少的开放连接,并将流量发送到这些服务器。这假定所有连接需要大致相等的处理能力。
- 加权最少连接:让管理员能够为每台服务器分配不同的权重,假设一些服务器可以比其他服务器处理更多的连接。
- 加权响应时间:计算每个服务器的平均响应时间,并将其与每个服务器打开的连接数相结合,以确定将流量发送到何处。该算法向具有最快响应时间的服务器发送流量,确保为用户提供更快的服务。
- 基于资源:根据每个服务器当时可用的资源来分配负载。在每台服务器上运行的专门软件(称为“代理”)会度量该服务器的可用 CPU 和内存,负载平衡器会在向该服务器分配流量之前查询该代理。
静态负载平衡算法
- 循环:循环负载平衡使用域名系统 (DNS)将流量轮流分配到一个服务器列表中。权威的名称服务器将拥有一个域名的不同 A 记录列表,并为每个 DNS 查询提供一个不同的记录。
- 加权循环:允许管理员为每个服务器分配不同的权重。被认为能够处理更多流量的服务器将收到稍多的流量。加权可以在 DNS 记录中配置。
- IP 哈希:结合传入流量的源和目的地 IP 地址,并使用一个数学函数将其转换为哈希。连接根据哈希值被分配到具体的服务器。
Cloudflare 负载平衡如何运作?
Cloudflare 负载平衡使用健康情况检查,将流量引向状态良好的服务器。它还使管理员能够自定义处理区域流量的位置,以减少流量的传输距离。这种方法被称为全局服务器负载平衡 (GSLB)。