ADC

最少连接方法

将虚拟服务器配置为使用最少的连接负载平衡算法(或方法)时,它会选择活动连接最少的服务。这是默认方法,因为在大多数情况下,它提供最佳性能。

对于 TCP、HTTP、HTTPS 和 SSL_TCP 服务,Citrix ADC 设备在其现有连接列表中包括以下连接类型:

  • 与服务的活动连接。表示客户端发送到虚拟服务器并且虚拟服务器已转发到服务的请求的连接。对于 HTTP 和 HTTPS 服务,活动连接仅表示尚未收到响应的 HTTP 或 HTTPS 请求。
  • 在浪涌队列中等待连接。在浪涌队列中等待并且尚未转发到服务的虚拟服务器的任何连接。出于以下任何原因,可随时在浪涌队列中建立连接:
    • 您的服务具有连接限制,并且负载平衡配置中的所有服务均处于该限制。
    • 浪涌保护功能已配置,并已通过向虚拟服务器发出的请求激活。
    • 负载平衡服务器已达到内部限制,因此不会打开任何新连接。(例如,达到 Apache 服务器的连接限制。)

当虚拟服务器使用最少连接方法时,它将等待的连接视为属于特定服务。因此,它不会打开到这些服务的新连接。

对于 UDP 服务,最少连接算法考虑的连接包括客户端和服务之间的所有会话。这些会话是基于时间的逻辑实体。当会话中的第一个 UDP 数据包到达时,Citrix ADC 设备会在源 IP 地址和端口与目标 IP 地址和端口之间创建会话。

对于实时流协议 (RTSP) 连接,Citrix ADC 设备使用主动控制连接数来确定与 RTSP 服务的最低连接数。

以下示例显示虚拟服务器如何通过使用最小连接方法选择服务进行负载平衡。考虑以下三项服务:

  • Service-HTTP-1 正在处理 3 个活动事务。
  • Service-HTTP-2 正在处理 15 个活动事务。
  • Service-HTTP-3 不处理任何活动事务。

下图说明 Citrix ADC 设备在使用最少连接方法时如何转发传入请求。

图 1. 最小连接负载平衡方法的机制

LB-least-connection

在此图中,虚拟服务器通过选择活动事务最少的服务器来为每个传入连接选择服务。

连接按如下方式转发:

  • Service-HTTP-3 接收第一个请求,因为它不处理任何活动事务。

    注意:首先选择没有活动事务的服务。

  • Service-HTTP-3 接收第二和第三个请求,因为该服务具有下一个最少的活动事务数。

  • ServerHTTP-1 收到第四个请求,因为 Sequ-HTTP-1 和 S—HTTP-3 具有相同数量的活动事务,虚拟服务器使用循环方法在它们之间进行选择。

  • Service-HTTP-3 接收第五个请求。

  • Service-HTTP-1 接收第六个请求,依此类推,直到 Service-HTTP-1 和 Service-HTTP-3 处理与 Service-HTTP-2 相同数量的请求。然后,当 Citrix ADC 设备是负载最少的服务或轮到循环队列中时,将开始将请求转发到 Service HTTP-2。

    注意:如果与 Service-HTTP-2 的连接关闭,它可能会在其他两个服务中的每个服务具有 15 个活动事务之前获得新的连接。

下表说明了在前面介绍的三服务负载平衡设置中如何分配连接。

传入连接 已选择的服务 当前活动连接数 备注
Request-1 Service-HTTP-3; (N = 0) 1 Service-HTTP-3 具有最少的活动连接。
Request-2 Service-HTTP-3; (N = 1) 2 Service-HTTP-3 具有最少的活动连接。
Request-3 Service-HTTP-3; (N = 2) 3 -
Request-4 Service-HTTP-1; (N = 3) 4 Service-HTTP-1 和 Service-HTTP-3 具有相同数量的活动连接。
Request-5 Service-HTTP-3; (N = 3) 4 Service-HTTP-1 和 Service-HTTP-3 具有相同数量的活动连接。
Request-6 Service-HTTP-1;(N = 4) 5 -
Request-7 Service-HTTP-3; (N = 4) 5 -
Request-8 Service-HTTP-1; (N = 5) 6 -

当 Service-HTTP-2 完成其活动事务并且与其当前连接关闭时,或者当其他服务(Service-HTTP-1 和 Service-HTTP-3)各有 15 个或更多的连接时,选择服务 HTTP-2 进行负载平衡。

将权重分配给服务时,Citrix ADC 设备也可以使用最少连接方法。它通过使用以下表达式的值 (Nw) 来选择服务:

Nw = (活动事务数量) * (10000/重量)

以下示例显示 Citrix ADC 设备如何在将权重分配给服务时使用最小连接方法来选择进行负载平衡的服务。在前面的示例中,假设为 Service-HTTP-1 分配了权重 2,为 Service-HTTP-2 分配了权重 3,为 Service-HTTP-3 分配了权重 4。连接按如下方式转发:

  • Service-HTTP-3 接收第一个,因为该服务不处理任何活动事务。

    注意:如果服务没有处理任何活动的事务,则无论分配给每项服务的权重如何,Citrix ADC 设备都会使用循环方法。

  • Service HTTP-3 收到第二个、第三、第四、第五、第六和第七个请求,因为该服务的 NW 值最低。

  • Service-HTTP-1 接收第八个请求。由于 S服务HTTP-1 和 Sservice-HTTP-3 现在具有相同的 NW 值,所以设备以循环方式执行负载均衡。因此,Service-HTTP-3 接收第九个请求。

下表说明了如何在前面介绍的三服务负载平衡设置上分配连接。

已收到请求 已选择的服务 当前 Nw (活动事务数量) * (10000/重量) 值 备注
Request-1 Service-HTTP-3; (Nw = 0) Nw = 2500 Service-HTTP-3 具有最低的 Nw 值。
Request-2 Service-HTTP-3; (Nw = 2500) Nw = 5000  
Request-3 Service-HTTP-3; (Nw = 5000) Nw = 7500  
Request-4 Service-HTTP-3; (Nw = 7500) Nw = 10000  
Request-5 Service-HTTP-3; (Nw = 10000) Nw = 12500  
Request-6 Service-HTTP-3; (Nw = 12500) Nw = 15000  
Request-7 Service-HTTP-1; (Nw = 15000) Nw = 20000 Service-HTTP-1 和 Service-HTTP-3 具有相同的 Nw 值
Request-8 Service-HTTP-3; (Nw = 15000) Nw = 17500  

当 Service-HTTP-2 完成其活动事务或其他服务(Service-HTTP-1 和 Service-HTTP-3)时的 Nw 值等于 50000 时,将选择 Service-HTTP-1 进行负载平衡。

下图说明了在将权重分配给服务时,Citrix ADC 设备如何使用最少连接方法。

图 2. 赋权时最小连接负载平衡方法的机制

分配权重和方法

要配置最少连接方法,请参阅 配置不包含策略的负载平衡方法

最少连接方法