Citrix ADC

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

请求重试可用于另一种情况,即如果后端服务器需要更多时间来响应请求,设备将在超时时间执行重新负载平衡,然后将请求转发到下一个可用服务器。

后端服务器响应超时时请求重试的工作原理

下图显示了组件之间的交互:

后端服务器响应超时时请求重试的工作原理

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

在后端服务器响应超时时配置请求重试(获取和post方法)

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

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

注意:请求超时时重试场景也适用于post方法。

启用appqoe

在命令提示符下,键入:

启用ns feature appqoe

为超时添加appqoe操作

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

在命令提示符下,键入:

add appqoe action -retryOnTimeout -numRetries

示例:

add appqoe action appac1 -retryOnTimeout 35 -numRetries

添加appqoe策略

要实施appqoe,您必须配置appqoe策略以定义如何对连接进行排队。

在命令提示符下,键入:

添加appqoe策略 -rule -action

示例:

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

将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 >策略
  2. 在“AppQoE策略“页中,单击”添加”。
  3. 在“创建AppQoE策略页面中,设置以下参数:

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

  4. 单击创建关闭

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

使用Citrix ADC GUI为请求重试配置AppQoE操作

  1. 导航到AppExpert > AppQoE >操作
  2. AppQoE操作页面中,单击添加
  3. 在“创建AppQoE操作页面中,为后端服务器响应超时时重试设置以下参数:a.在超时时重试。在向后端服务器发送请求时,根据请求超时重试(毫秒)。
  4. 单击创建关闭

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

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