负载平衡算法

负载平衡算法定义 Citrix ADC 设备用于选择要将每个客户端请求重定向到的服务的条件。不同的负载平衡算法使用不同的标准。例如,最少连接算法选择活动连接最少的服务,而循环算法则维护活动服务的正在运行的队列,将每个连接分配到队列中的下一个服务,然后将该服务发送到队列的末尾。

一些负载平衡算法最适合处理网站上的流量,另一些则适用于管理到 DNS 服务器的流量,另一些则适用于处理电子商务或公司 LAN 或 WAN 中使用的复杂 Web 应用程序。下表列出了 Citrix ADC 设备支持的每种负载平衡算法,并简要介绍了每种算法的工作方式。

名称 服务器选择基于
最少的联系 哪个服务当前具有最少的客户端连接。这是默认的负载平衡算法。
循环赛 哪项服务位于服务列表的顶部。为连接选择该服务后,它将移动到列表的底部。
反应最少 哪个负载平衡服务器目前具有最快的响应时间。
链接 目标 URL 的哈希值。
域哈希 目标域的哈希值。
目的地 目标 IP 地址的哈希值。
SOURCEIPHASH 源 IP 地址的哈希值。
SRCIPDESTIPHASH 源和目标 IP 地址的哈希值。
CALLIDHASH SIP 标头中呼叫 ID 的哈希值。
牛肝菌 客户端 IP 地址和端口的哈希值。
LEASTBANDWIDTH 哪个服务当前带宽限制最少。
LEASTPACKETS 哪个服务当前接收的数据包最少。
定制负载 来自负载监视器的数据。
令牌 配置的令牌。
LRTM 活动连接最少,平均响应时间最短。
   

根据负载平衡的服务的协议,Citrix ADC 设备将客户端和服务器之间的每个连接设置为持续不同的时间间隔。这称为负载平衡粒度,其中有三种类型:基于请求的粒度、基于连接的粒度和基于时间的粒度。下表描述了每种类型的粒度以及使用每种粒度的时间。

粒度 负载均衡服务类型 说明
基于请求 网络通信或网络通信 为每个 HTTP 请求选择一个新的服务,独立于 TCP 连接。与所有 HTTP 请求一样,Web 服务器满足请求后,连接将关闭。
基于连接的方式 HTTP 以外的基于 TCP 和 TCP 的协议 为每个新的 TCP 连接选择一个服务。连接一直保持,直到服务或客户端终止。
基于时间的 UDP 和其他 IP 协议 为每个 UDP 数据包选择一个新服务。选择服务后,会在服务和客户端之间创建一个指定时间段的会话。时间过期时,会删除会话并为任何其他数据包选择新服务,即使这些数据包来自同一客户端。

在虚拟服务器启动期间,或者每当虚拟服务器的状态发生变化时,虚拟服务器最初可以使用轮询方法在物理服务器之间分发客户端请求。这种类型的分发(称为 启动轮询 )有助于防止在处理初始请求时在单个服务器上出现不必要的负载。在启动时使用轮询方法后,虚拟服务器会切换到虚拟服务器上指定的负载平衡方法。

启动 RR 因子的工作方式如下:

  • 如果启动 RR 系数设置为零,则设备会根据请求速率切换到指定的负载平衡方法。
  • 如果启动 RR 因子是零以外的任何数字,则在切换到指定的负载平衡方法之前,设备对指定数量的请求使用循环方法。
  • 默认情况下,启动 RR 系数设置为零。

注意:您不能为单个虚拟服务器设置启动 RR 因子。您指定的值应用于 Citrix ADC 设备上的所有虚拟服务器。

使用 CLI 设置启动轮询系数

在命令提示窗口中,键入:

set lb parameter -startupRRFactor <positive_integer>

示例

set lb parameter -startupRRFactor 25000

使用 GUI 设置启动轮询系数

  1. 导航到流量管理 > 负载平衡 > 配置负载平衡参数,并设置启动 RR 系数。