ADC

Demander une nouvelle tentative en cas d’expiration du délai de réponse du serveur principal

Une nouvelle tentative de demande est disponible pour un autre scénario dans lequel, si un serveur principal met plus de temps à répondre aux demandes, l’appliance effectue un équilibrage de charge en cas d’expiration du délai et transmet la demande au serveur disponible suivant.

Comment fonctionne une nouvelle tentative de demande lorsque le délai de réponse du serveur principal expire

Le schéma suivant montre les composants qui interagissent les uns avec les autres :

Comment fonctionne une nouvelle tentative de demande lorsque le délai de réponse du serveur principal expire

  1. Le processus commence par l’activation de la fonctionnalité Apqoe sur votre appliance.
  2. La configuration appqoe possède le paramètre « RetryOnTimeout » en millisecondes.
  3. Lorsque l’appliance envoie une demande et si le serveur met plus de temps à répondre, l’appliance effectue un équilibrage de recharge en fonction de la valeur de délai d’expiration configurée. L’appliance réinitialise la connexion, choisit un autre service et transmet la demande au lieu d’attendre la réponse du serveur.
  4. Une fois que le serveur virtuel d’équilibrage de charge a reçu la réponse, l’appliance transmet la réponse au client. L’utilisation d’un paramètre de temporisation empêche l’appliance de continuer à attendre la réponse du serveur, ce qui entraîne une augmentation du RTT.
  5. Si le nombre de serveurs principaux disponibles est égal ou inférieur au nombre de nouvelles tentatives et si tous les serveurs expirent pour répondre à la demande, l’appliance répondra à une erreur de serveur interne de 500. Considérez un scénario avec cinq serveurs disponibles et le nombre de tentatives est défini sur six. Si le délai d’exécution de la demande est dépassé pour les cinq serveurs, l’appliance renvoie une erreur de serveur interne 500 au client.
  6. De même, si le nombre de serveurs principaux est supérieur au nombre de nouvelles tentatives et si le serveur principal expire suite à une demande, l’appliance attend le dernier service jusqu’à ce que le serveur envoie une réponse ou que la connexion inactive du client expire. Considérez un scénario avec trois serveurs back-end et le nombre de tentatives est défini comme deux. Si les trois serveurs expirent à la suite de la demande, l’appliance attend le troisième service jusqu’à ce que le serveur envoie une réponse ou que la connexion inactive du client expire.

Configurer une nouvelle tentative de demande (méthodes GET et POST) lorsque le délai de réponse du serveur principal expire

Pour configurer une nouvelle tentative de demande pour la méthode GET en cas d’expiration du délai, vous devez suivre les étapes suivantes.

  1. Activer appqoe
  2. Configurer l’action Apqoe
  3. Ajouter une politique Apple
  4. Lier la stratégie appqoe au serveur virtuel d’équilibrage de charge

Remarque :

Le scénario de nouvelle tentative de demande après expiration du délai est également applicable à la méthode POST.

Activer appqoe

À l’invite de commandes, tapez :

enable ns feature appqoe

Ajouter une action Apqoe pour le délai d’expiration

Vous devez configurer l’action appqoe pour qu’elle réessaie en cas d’expiration du délai et définir le nombre de tentatives.

À l’invite de commandes, tapez :

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

Exemple :

add appqoe action appact1 -retryOnTimeout 35 –numRetries 5

Ajouter une politique Apple

Pour implémenter appqoe, vous devez configurer la stratégie appqoe afin de définir comment mettre les connexions en file d’attente.

À l’invite de commandes, tapez :

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

Exemple :

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

Lier la stratégie appqoe au serveur virtuel d’équilibrage de charge

Lorsqu’un serveur principal met du temps à répondre et si vous souhaitez que le serveur virtuel d’équilibrage de charge transfère la demande au prochain service disponible, vous devez lier la stratégie appqoe au serveur virtuel d’équilibrage.

À l’invite de commandes, tapez :

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

Exemple :

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

Configurer la stratégie AppQoE pour l’équilibrage de charge en cas d’expiration du délai à l’aide de l’interface graphique NetScaler

  1. Accédez à AppExpert > AppQoE > Politiques .
  2. Sur la page Politiques AppQoE , cliquez sur Ajouter.
  3. Dans la page Créer une stratégie AppQoE, définissez les paramètres suivants :

    a. Nom. Nom de la politique AppQoE b. Action. Ajoutez ou modifiez une action. Pour créer une nouvelle action, consultez la section Créer une action AppQoE. c. Expression. Sélectionnez ou saisissez l’expression de politique « http.req.method.eq (get) ».

  4. Cliquez sur Créer et Fermer.

Configurer l’action AppQoE pour une nouvelle tentative de demande à l’aide de l’interface graphique NetScaler

  1. Accédez à AppExpert > AppQoE > Action .
  2. Sur la page AppQoE Actions , cliquez sur Ajouter.
  3. Sur la page Créer une action AppQoE , définissez le paramètre suivant pour une nouvelle tentative en cas d’expiration du délai de réponse du serveur principal : a. Réessayez sur Timeout. Réessayez sur demande. Délai d’expiration (en millisecondes) lors de l’envoi de la demande aux serveurs principaux.
  4. Cliquez sur Créer et Fermer.
Demander une nouvelle tentative en cas d’expiration du délai de réponse du serveur principal