Citrix ADC

Demander une nouvelle tentative si la réponse du serveur principal arrive à expiration

Une nouvelle tentative de demande est disponible pour un autre scénario où, si un serveur principal prend plus de temps pour répondre aux demandes, l’appliance effectue un équilibrage de recharge après expiration et transmet la demande au serveur disponible suivant.

Fonctionnement de la nouvelle tentative de demande lorsque la réponse du serveur principal arrive à expiration

Le diagramme suivant montre les composants interagissent les uns avec les autres :

Fonctionnement de la nouvelle tentative de demande lorsque la réponse du serveur principal arrive à expiration

  1. Le processus commence par activer la fonctionnalité appqoe sur votre appliance.
  2. La configuration appqoe a le paramètre « retryOnTimeout » en millisecondes.
  3. Lorsque l’appliance envoie une demande et si le serveur prend plus de temps pour 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 requête 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 délai d’attente 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 tentatives et si tous les serveurs dépassent la demande, l’appliance répondra à une erreur interne de 500 serveurs. Considérez un scénario avec cinq serveurs disponibles et le nombre de tentatives est défini sur six. Si les cinq serveurs sont épuisés pour la demande, 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 expédie une demande, l’appliance continue d’attendre le dernier service jusqu’à ce que le serveur envoie une réponse ou que la connexion client ne cesse d’expiration. Considérez un scénario avec trois serveurs back-end et le nombre de tentatives est défini comme deux. Si les trois serveurs sont épuisés à la demande, l’appliance continue d’attendre le troisième service jusqu’à ce que le serveur envoie une réponse ou que la connexion client inactive expédie le délai d’expiration.

Configurer la nouvelle tentative de demande (méthode GET et POST) lorsque la réponse du serveur principal arrive à expiration

Pour configurer une nouvelle tentative de demande pour la méthode GET sur le délai d’expiration, vous devez effectuer les étapes suivantes.

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

Remarque :

La nouvelle tentative de demande au moment du délai d’expiration est également applicable pour la méthode POST.

Activer appqoe

À l’invite de commandes, tapez :

enable ns feature appqoe

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

Vous devez configurer l’action appqoe pour réessayer au délai d’expiration et définir le nombre de tentatives de nouvelle tentative.

À 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 stratégie appqoe

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

À 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 prend beaucoup de temps à répondre et si vous souhaitez que le serveur virtuel d’équilibrage de charge transmette la demande au service disponible suivant, 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 la rééquilibrage de charge sur le délai d’expiration à l’aide de l’interface graphique Citrix ADC

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

    a. Nom. AppQoE policy name b. Action. Ajoutez ou modifiez une action. Pour créer une action, reportez-vous à la section Créer une action AppQoE. c. Expression. Sélectionnez ou entrez l’expression de stratégie « http.req.method.eq (get) ».

  4. Cliquez sur Créer et Fermer.

Configurer la stratégie appqoe pour le délai de réponse du serveur d'équilibrage de charge

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

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

configurer l'action AppQoE pour une nouvelle tentative de demande pour le délai de réponse du serveur principal et

Demander une nouvelle tentative si la réponse du serveur principal arrive à expiration