Configurer le routeur pour relancer les connexions à un processeur de messages

Edge pour Private Cloud version 4.17.09

Configurer la réponse du routeur lorsqu'un processeur de messages est indisponible lors d'une vérification de l'état

Le routeur vérifie l'état du processeur de messages toutes les cinq secondes pour déterminer s'il est en mesure de traiter les requêtes. Si un processeur de messages tombe en panne, le routeur transfère automatiquement les requêtes à un autre processeur de messages.

Vous pouvez configurer la manière dont le routeur réagit lorsque le processeur de messages tombe en panne en définissant la propriété conf_load_balancing_load.balancing.driver.nginx.server.retry sur le routeur. Cette propriété accepte un ensemble de valeurs délimitées par des espaces pouvant inclure les éléments suivants:

  • off: désactive les nouvelles tentatives. Le routeur renvoie un code d'échec sur une requête.
  • http_599 (par défaut) : si le routeur reçoit une réponse HTTP 599 du processeur de messages, il transmet la requête au processeur de messages suivant.

    HTTP 599 est un code de réponse spécial généré par un processeur de messages lors de son arrêt. Le processeur de messages tente de traiter toutes les requêtes existantes, mais pour toute nouvelle requête, il renvoie le code HTTP 599 pour indiquer au routeur qu'il doit relancer la requête sur le processeur de messages suivant.
  • error (erreur) : si une erreur s'est produite lors de l'établissement d'une connexion avec le processeur de messages, lors de la transmission d'une requête ou de la lecture de l'en-tête de réponse, le routeur transmet la requête au processeur de messages suivant.
  • timeout: si un délai d'inactivité se produit lors de l'établissement d'une connexion avec le processeur de messages, de la transmission d'une requête ou de la lecture de l'en-tête de réponse, le routeur transmet la requête au processeur de messages suivant.
  • invalid_header: si le processeur de messages renvoie une réponse vide ou non valide, le routeur transmet la requête au processeur de messages suivant.
  • http_XXX: si le processeur de messages renvoie une réponse avec le code HTTP XXX, le routeur transmet la requête au processeur de messages suivant.

Pour configurer le routeur:

  1. Modifiez le fichier /opt/apigee/customer/application/router.properties (si le fichier n'existe pas, créez-le).
  2. Ajoutez la propriété conf_load_balancing_load.balancing.driver.nginx.server.retry comme indiqué ci-dessous:
    conf_load_balancing_load.balancing.driver.nginx.server.retry
  3. Assurez-vous que le fichier de propriétés appartient à l'utilisateur "apigee" :
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Redémarrez le routeur:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-router restart

Configuration du délai avant expiration du routeur lors de l'accès aux processeurs de messages dans le cadre d'une requête de proxy d'API

Le routeur périphérique a un délai d'expiration prédéfini de 57 secondes lors d'une tentative d'accès à un processeur de messages dans le cadre du traitement d'une requête via un proxy d'API. Lorsque ce délai expire, le routeur tente de se connecter à un autre processeur de messages, s'il est disponible. Sinon, elle renverra une erreur.

Vous pouvez utiliser deux propriétés pour contrôler ce délai:

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout spécifie le temps d'attente, en secondes, pour un seul processeur de messages. La valeur par défaut est de 57 secondes.
  • conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout spécifie le temps d'attente total, en secondes, pour tous les processeurs de messages lorsque votre installation Edge comporte plusieurs processeurs de messages. Cette valeur a une valeur par défaut de la valeur actuelle de conf_load_balancing_load.balancing.driver.proxy.read.timeout, soit 57 secondes.

Pour configurer le routeur:

  1. Modifiez le fichier /opt/apigee/customer/application/router.properties (si le fichier n'existe pas, créez-le).
  2. Définissez les propriétés comme indiqué ci-dessous:
    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
  3. Assurez-vous que le fichier de propriétés appartient à l'utilisateur "apigee" :
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Redémarrez le routeur:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-router restart