ADC

Solicite un reintento si el servidor de fondo restablece la conexión TCP

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 equilibrar la recarga, el cliente guarda el RTT cuando el dispositivo inicia la misma solicitud para el siguiente servicio disponible.

Cómo funciona el reintento de solicitud cuando el servidor de fondo restablece una conexión TCP

El siguiente diagrama muestra cómo interactúan los componentes entre sí.

Cómo funciona el reintento de solicitud para restablecer la conexión TCP

  1. El proceso comienza habilitando la función appqoe en su 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 habilitada la opción de “reintentar” con el número deseado 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 de fondo disponibles son iguales o inferiores al recuento de reintentos y si todos los servidores envían un 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 al cliente un error interno de servidor 500.
  7. Del mismo modo, si el número de servidores de fondo es superior al recuento de reintentos y si los servidores de fondo 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.

Configurar reintento de solicitud para el método GET

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

  1. Habilitar AppQoE
  2. Agregar acción AppQoE
  3. Agregar directiva AppQoE
  4. Enlazar la directiva de AppQoE al servidor virtual de equilibrio de carga

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. números. Reintentar contar.

Agregar directiva AppQoE

Para implementar AppQoE, debe configurar la directiva de AppQoE para priorizar las solicitudes HTTP o SSL entrantes 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 directiva de appqoe al servidor virtual de equilibrio de carga

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. Enlazar la directiva de AppQoE al servidor virtual de equilibrio de carga

Habilitar AppQoE

En la línea de comandos, escriba:

enable ns feature appqoe

Agregar acción de 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 de 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, defina los siguientes parámetros: a. Nombre. Nombre de la directiva de AppQoE b. Acción. Agregar o modificar una acción. Para crear una acción, consulte la sección Crear acción de AppQOE . c. 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 CLI y 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 sección de conexión.

Solicite un reintento si el servidor de fondo restablece la conexión TCP