Citrix ADC

如果后端服务器响应超时,请求重试

请求重试可用于另一种场景,在这种场景中,如果后端服务器需要更多时间来响应请求,设备将在超时时执行重新负载平衡,并将请求转发给下一个可用的服务器。

当后端服务器响应超时时,请求重试如何工作

组件之间的交互关系如下图所示:

当后端服务器响应超时时,请求重试如何工作

  1. 该过程首先在设备上启用appqe功能。
  2. appqe配置有以毫秒为单位的“retryOnTimeout”参数。
  3. 当设备发送请求时,如果服务器需要更多的时间来响应,则设备根据配置的超时值执行重新负载平衡。设备重置连接,选择另一个服务并转发请求,而不是等待服务器响应。
  4. 负载平衡虚拟服务器接收到响应后,设备将响应转发给客户端。使用超时参数可以防止设备一直等待服务器响应,从而增加RTT。
  5. 如果可用的后端服务器等于或小于重试计数,并且如果所有服务器都超时,则设备将响应一个500的内部服务器错误。考虑一个场景,其中有5台可用服务器,重试计数设置为6。如果所有5个服务器都超时,则设备将向客户机返回一个500内部服务器错误。
  6. 类似地,如果后端服务器的数量超过重试计数,并且后端服务器在请求时超时,则设备将继续等待最后一个服务,直到服务器发出响应或客户端空闲连接超时。考虑一个有三个后端服务器的场景,重试计数设置为两个。如果所有三个服务器在请求时超时,则设备将继续等待第三个服务,直到服务器发出响应或客户端空闲连接超时。

配置后端服务器响应超时时的请求重试(GET和POST方法)

要配置GET方法在超时时的请求重试,必须完成以下步骤。

  1. 使appqoe
  2. 配置appqoe操作
  3. 添加appqoe策略
  4. 绑定appqoe策略到负载均衡虚拟服务器

注意:

请求超时重试的场景也适用于POST方法。

使appqoe

在命令提示符下,输入:

启用nsfeature appqe

为超时添加appqe动作

您必须将appqoe操作配置为超时重试,并定义重试尝试的次数。

在命令提示符下,输入:

add appqe action -retryOnTimeout -numRetries

例子:

add appqe action appact1 -retryOnTimeout 35 -numRetries

添加appqoe策略

要实现appqe,必须配置appqe策略来定义如何将连接排队。

在命令提示符下,输入:

添加appqoe策略 -rule -action

例子:

添加appt1策略timeout_policy -rule http.req.method.eq(get) -action appt1

绑定appqoe策略到负载均衡虚拟服务器

当后端服务器需要很长时间才能响应时,如果您希望负载平衡虚拟服务器将请求转发给下一个可用的服务,则必须将appqoe策略绑定到平衡虚拟服务器。

在命令提示符下,输入:

bind lb vserver (( (-policyName [-priority ] [-gotoPriorityExpression ] [-type (REQUEST | RESPONSE)])

例子:

bind lb vserver v1 -policyName timeout_policy -type REQUEST -priority

通过使用Citrix ADC GUI配置AppQoE策略,以便在超时时重新进行负载均衡

  1. 导航到AppExpert > AppQoE > Policies
  2. AppQoE政策页面,点击添加
  3. 创建AppQoE策略界面,设置如下参数:

    一个名字。AppQoE策略名称b.操作。添加或编辑操作。要创建新操作,请参见创建AppQoE操作部分。c。表达式。选择或输入“http.req.method.eq(get)”策略表达式。

  4. 点击创建关闭

为重新负载均衡服务器响应超时配置appqoe策略

通过使用Citrix ADC GUI配置请求重试的AppQoE操作

  1. 导航到AppExpert > AppQoE > Action
  2. AppQoE行动页面,点击添加
  3. 创建AppQoE操作界面,设置后端服务器响应超时重试参数:a.超时重试。向后端服务器发送请求时,在请求超时时重试(毫秒)。
  4. 点击创建关闭

为后端服务器响应超时的请求重试配置AppQoE操作

如果后端服务器响应超时,请求重试