ADC

Solicite un reintento si se agota el tiempo de respuesta del servidor de fondo

El reintento de solicitud está disponible para otro caso en el que, si un servidor de fondo tarda más en responder a las solicitudes, el dispositivo equilibra la recarga cuando se agota el tiempo de espera y reenvía la solicitud al siguiente servidor disponible.

Cómo funciona el reintento de solicitud cuando se agota el tiempo de respuesta del servidor de fondo

El siguiente diagrama muestra que los componentes interactúan entre sí:

Cómo funciona el reintento de solicitud cuando se agota el tiempo de respuesta del servidor de fondo

  1. El proceso comienza habilitando la función appqoe en su dispositivo.
  2. La configuración de appqoe tiene el parámetro “RetryOnTimeout” en milisegundos.
  3. Cuando el dispositivo envía una solicitud y si el servidor tarda más en responder, el dispositivo realiza el equilibrio de recarga en función del valor de tiempo de espera configurado. El dispositivo restablece la conexión, elige otro servicio y reenvía la solicitud en lugar de esperar la respuesta del servidor.
  4. Después de que el servidor virtual de equilibrio de carga reciba la respuesta, el dispositivo reenvía la respuesta al cliente. El uso de un parámetro de tiempo de espera impide que el dispositivo siga esperando la respuesta del servidor, lo que provoca un aumento del RTT.
  5. Si los servidores de fondo disponibles son iguales o inferiores al recuento de reintentos y si se agota el tiempo de espera de todos los servidores para la solicitud, el dispositivo responderá a un error interno del servidor 500. Considere un caso con cinco servidores disponibles y el recuento de reintentos establecido como seis. Si se agota el tiempo de espera de los cinco servidores para la solicitud, el dispositivo devuelve al cliente un error interno de 500 servidores.
  6. Del mismo modo, si el número de servidores de fondo supera el recuento de reintentos y si el servidor de fondo se agota el tiempo de espera ante una solicitud, el dispositivo sigue esperando el último servicio hasta que el servidor envíe una respuesta o se agote el tiempo de espera de la conexión inactiva del cliente. Considere un caso con tres servidores back-end y el recuento de reintentos establecido como dos. Si se agota el tiempo de espera de los tres servidores a la solicitud, el dispositivo sigue esperando al tercer servicio hasta que el servidor envíe una respuesta o se agote el tiempo de espera de la conexión inactiva del cliente.

Configure el reintento de solicitud (métodos GET y POST) cuando se agote el tiempo de respuesta del servidor de fondo

Para configurar el reintento de solicitud para el método GET cuando se agote el tiempo de espera, debe completar los siguientes pasos.

  1. Habilitar appqoe
  2. Configurar la acción de appqoe
  3. Agregar directiva de appqoe
  4. Vincular directiva de appqoe al servidor virtual de equilibrio de carga

Nota:

El caso de reintento de la solicitud cuando se agota el tiempo de espera también se aplica al método POST.

Habilitar appqoe

En la línea de comandos, escriba:

enable ns feature appqoe

Agregar appqoe action para agotar el tiempo de espera

Debe configurar la acción appqoe para volver a intentarlo cuando se agote el tiempo de espera y definir el número de reintentos.

En la línea de comandos, escriba:

add appqoe action <name> -retryOnTimeout <msecs> -numRetries <positive_integer>

Ejemplo:

add appqoe action appact1 -retryOnTimeout 35 –numRetries 5

Agregar directiva de appqoe

Para implementar appqoe, debe configurar la directiva de appqoe para definir cómo poner en cola las conexiones.

En la línea de comandos, escriba:

add appqoe policy <name> -rule <rule> -action <name>

Ejemplo:

add appqoe policy timeout_policy -rule http.req.method.eq(get) -action appact1

Vincular directiva de appqoe al servidor virtual de equilibrio de carga

Cuando un servidor de fondo tarda mucho en responder y si desea que el servidor virtual de equilibrio de carga reenvíe la solicitud al siguiente servicio disponible, debe vincular la directiva de appqoe al servidor virtual de equilibrio.

En la línea de comandos, escriba:

bind lb vserver <name> ((<serviceName> (-policyName <string> [-priority <positive_integer>] [-gotoPriorityExpression <expression>] [-type ( REQUEST | RESPONSE )]

Ejemplo:

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

Configure la directiva de AppQoE para reequilibrar la carga cuando se agote el tiempo de espera mediante la GUI de NetScaler

  1. Vaya a AppExpert > AppQoe > Políticas.
  2. En la página Directivas de AppQoE, haga clic en Agregar.
  3. En la página Crear una directiva de AppQoE, establezca los siguientes parámetros:

    a. Nombre. Nombre de la directiva de AppQoE b. Acción. Agregar o modificar una acción. Para crear una nueva acción, consulta la sección Crear acción de AppQoE. c. Expresión. Seleccione o introduzca la expresión de directiva “http.req.method.eq (get)”.

  4. Haga clic en Crear y Cerrar.

Configure la acción de AppQoE para solicitar el reintento mediante la GUI de NetScaler

  1. Vaya a AppExpert > AppQoe > Acción .
  2. En la página Acciones de AppQoE, haga clic en Agregar.
  3. En la página Crear acción de AppQOE, defina el siguiente parámetro para volver a intentarlo cuando se agote el tiempo de respuesta del servidor de fondo: a. Vuelva a intentarlo cuando se agote el tiempo de espera. Vuelva a intentarlo cuando se agote el tiempo de espera de la solicitud (en milisegundos) al enviar la solicitud a los servidores de fondo.
  4. Haga clic en Crear y Cerrar.
Solicite un reintento si se agota el tiempo de respuesta del servidor de fondo