ADC

Solicitar reintento

Cuando un servidor back-end restablece una conexión TCP, la función de reintento de solicitud reenvía la solicitud al siguiente servidor disponible, en lugar de enviar el restablecimiento al cliente. Al realizar el equilibrio de recarga, el cliente guarda RTT cuando el dispositivo inicia la misma solicitud en el siguiente servicio disponible.

La función de reintento de solicitud es aplicable para el siguiente caso de error:

  • El servidor de fondo restablece una conexión TCP cuando el dispositivo envía un paquete de datos de solicitud.
  • Si el servidor de fondo restablece una conexión TCP en el establecimiento SYN

Cómo funciona el reintento de solicitud cuando el servidor back-end restablece una conexión TCP al recibir un paquete de datos de solicitud

En el siguiente diagrama se muestra cómo interactúan los componentes entre sí.

Cómo funciona el reintento de solicitud

  1. El proceso comienza habilitando la función AppQoE en el dispositivo.
  2. Cuando el cliente envía una solicitud HTTP o HTTPS, el servidor virtual de equilibrio de carga envía la solicitud al servidor back-end.
  3. Si el servicio solicitado no está disponible, el servidor back-end restablece la conexión TCP.
  4. Si la configuración de AppQoe tiene activado el “reintento” con el número deseado de intentos de reintentos especificado, el servidor virtual de equilibrio de carga utiliza el algoritmo de equilibrio de carga configurado para reenviar la solicitud al siguiente servidor de aplicaciones disponible.
  5. Después de que el servidor virtual de equilibrio de carga reciba la respuesta, el dispositivo reenvía la respuesta al cliente.
  6. Si los servidores back-end disponibles son iguales o inferiores al recuento de reintentos y si todos los servidores envían un restablecimiento, el dispositivo respondería un error de 500 servidores internos. Considere un caso con cinco servidores disponibles y el recuento de reintentos establecido como seis. Si los cinco servidores restablecen la conexión, el dispositivo devuelve un error interno de 500 servidores al cliente.
  7. Del mismo modo, si el número de servidores back-end es superior al recuento de reintentos y si los servidores back-end restablecen la conexión, el dispositivo reenvía el restablecimiento al cliente. Considere un caso con tres servidores back-end y el recuento de reintentos establecido como dos. Si los tres servidores restablecen la conexión, el dispositivo envía una respuesta de restablecimiento al cliente.

Cómo funciona el reintento de solicitudes cuando el servidor back-end restablece una conexión TCP en el establecimiento SYN

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

Cómo funciona el reintento de solicitud

  1. El proceso comienza habilitando la función AppQoE en el dispositivo.
  2. Cuando el cliente envía una solicitud HTTP o HTTPS, el servidor virtual de equilibrio de carga inicia la conexión al servidor back-end.
  3. Si el servicio solicitado no está disponible en el establecimiento SYN TCP, el servidor back-end restablece la conexión TCP.
  4. Si la configuración de AppQoe tiene activado el “reintento” con el número deseado de intentos de reintentos especificado, el servidor virtual de equilibrio de carga utiliza el algoritmo de equilibrio de carga configurado para reenviar la solicitud al siguiente servidor de aplicaciones disponible.
  5. Después de que el servidor virtual de equilibrio de carga reciba la respuesta, el dispositivo reenvía la respuesta al cliente.
  6. Si los servidores back-end disponibles son iguales o inferiores al recuento de reintentos y si todos los servidores envían restablecimiento, el dispositivo respondería un error interno de 500 servidores. Considere un caso con cinco servidores disponibles y el recuento de reintentos establecido como seis. Si los cinco servidores restablecen la conexión, el dispositivo devuelve un error interno de 500 servidores al cliente
  7. Del mismo modo, si el número de servidores back-end es superior al recuento de reintentos y si los servidores back-end restablecen la conexión en el establecimiento SYN TCP, el dispositivo reenvía el restablecimiento al cliente. Considere un caso con tres servidores back-end y el recuento de reintentos establecido como dos. Si los tres servidores restablecen la conexión, el dispositivo envía un paquete de restablecimiento al cliente.

Configurar reintento de solicitud para el método GET

Para configurar la función de reintento de un método GET, debe completar los siguientes pasos.

  1. Habilitar AppQoE
  2. Agregar acción AppQoE
  3. Agregar directiva AppQoE
  4. Vincular el servidor virtual de equilibrio de carga a la directiva AppQoE

Habilitar AppQoE

En la línea de comandos, escriba: enable ns feature appqoe

Agregar acción AppQoE

Debe configurar una acción de AppQoE para especificar si quiere que el dispositivo vuelva a intentarlo tras un restablecimiento de TCP y el número de reintentos.

add appqoe action reset_action -retryOnReset ( YES | NO ) -numretries <positive_integer>]

Ejemplo:

add appqoe action reset_action –retryOnReset YES –numretries 5

Donde: retryOnReset. Habilite el reintento si el servidor back-end restablece una conexión TCP. numretries. Reintentar contar.

Agregar directiva AppQoE

Para implementar AppQoE, debe configurar la directiva de AppQoE para dar prioridad a la solicitud HTTP o SSL entrante en una cola específica.

En la línea de comandos, escriba:

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

Ejemplo:

add AppQoE policy reset_policy -rule http.req.method.eq(get) -action reset_action

Vincular el servidor virtual de equilibrio de carga a la directiva AppQoE

Cuando un servidor back-end restablece una solicitud de paquete TCP y si quiere que el servidor virtual de equilibrio de carga reenvíe la solicitud al siguiente servicio disponible, debe enlazar el servidor virtual de equilibrio de carga a la directiva AppQoE.

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 reset_policy -type REQUEST -priority 1

Configurar el reintento de solicitud para las solicitudes POST

Siempre debe tener cuidado al volver a cargar las solicitudes de saldo que escriben datos en el servidor de fondo. Para este tipo de solicitudes, asegúrate de que la longitud del contenido sea corta. Si la longitud del contenido es larga, puede provocar un consumo de recursos. Siga los pasos que se indican a continuación para configurar el equilibrio de recarga para las solicitudes POST.

  1. Habilitar AppQoE
  2. Agregar acción AppQoE
  3. Agregar directiva AppQoE
  4. Vincular el servidor virtual de equilibrio de carga a la directiva AppQoE

Habilitar AppQoE

En la línea de comandos, escriba:

enable ns feature appqoe

Agregar acción AppQoE

Debe agregar una acción AppQoE para volver a intentarlo después de un restablecimiento de TCP y número de intentos de reintento.

add appqoe action reset_action -retryOnReset ( YES | NO ) -numretries <positive_integer>]

Ejemplo:

add AppQoE action reset_action –retryOnReset YES –numretries 5

Agregar directiva AppQoE

Para implementar AppQoE, debe configurar la directiva de AppQoE para definir cómo poner en cola las conexiones en una cola específica.

En la línea de comandos, escriba:

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

Ejemplo:

add appqoe policy reset_policy -rule HTTP.REQ.CONTENT_LENGTH.le(2000) -action reset_action

Nota:

Puede utilizar esta configuración si prefiere restringir la función de solicitud y reintento a una longitud de contenido inferior a 2000.

Vincular el servidor virtual de equilibrio de carga a la directiva AppQoE

Cuando un servidor de fondo restablece una solicitud de paquetes TCP y quiere que el servidor virtual de equilibrio de carga reenvíe la solicitud al siguiente servicio disponible a través de una cola específica, debe vincular el servidor virtual de equilibrio de carga a la directiva de AppQoE.

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 reset_policy -type REQUEST -priority 1

Configure la directiva de AppQoE para solicitar un reintento 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:

    • Nombre. Nombre de directiva de AppQoe
    • Acción. Agregar o modificar una acción. Para crear una acción, consulte la sección Crear acción de AppQoE.
    • Expresión. Seleccione o introduzca una expresión de directiva HTTP.REQ.CONTENT_LENGTH.le (2000).
  4. Haga clic en Crear y Cerrar.

Configure la acción de AppQoE para el balanceo de solicitudes y reintentos 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 los siguientes parámetros para volver a intentar restablecer TCP: a. Vuelva a intentarlo al restablecer TCP. Seleccione la casilla de verificación para habilitar la acción de reintento para restablecer TCP. b. Recuento de reintentos. Introduzca el recuento de reintentos.
  4. Haga clic en Crear y Cerrar.

Configurar el reintento de solicitud para el método GET cuando el servidor back-end se restablece en el establecimiento TCP SYN

La configuración de la CLI y la GUI es similar a los pasos seguidos para el método GET. Para obtener más información, consulte la sección Configurar solicitud de prueba para el método GET. Cuando el servidor back-end restablece una conexión.

Solicitar reintento