Bonnes pratiques de configuration du délai avant expiration des E/S

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Les requêtes API effectuées par les applications clientes transitent par différents composants dans Apigee Edge avant d'atteindre les services de backend. La plupart des applications clientes s'attendent à recevoir les réponses à ces requêtes dans les meilleurs délais.

Pour obtenir des réponses dans les meilleurs délais, les valeurs de délai avant expiration des E/S sont définies dans chacun des composants par lesquels transitent les requêtes API. Si l'un des composants du flux prend plus de temps que le composant précédent, celui-ci expire et renvoie des erreurs 504 de délai avant expiration de la passerelle.

Lors de la configuration du délai avant expiration, veillez à configurer les valeurs avec le plus grand soin dans chacun des composants, sans quoi des erreurs 504 de délai avant expiration de la passerelle peuvent se produire.

Ce document décrit les bonnes pratiques pour configurer le délai d'expiration des E/S sur les différents composants par lesquels les requêtes API circulent dans Apigee Edge.

Bonnes pratiques de configuration du délai d'expiration des E/S

Tenez compte des bonnes pratiques suivantes lorsque vous configurez le délai avant expiration des E/S:

  • Premier composant:utilisez toujours le délai avant expiration le plus élevé sur le premier composant du flux de requêtes API, qui est l'application cliente dans Apigee Edge.
  • Dernier composant:utilisez toujours le délai d'inactivité le plus bas sur le dernier composant du flux de requêtes API, qui est le service de backend dans Apigee Edge.
  • Entre les composants:assurez-vous qu'il existe une différence d'au moins 2 à 3 secondes dans la valeur du délai avant expiration configurée dans chaque composant entre le premier et le dernier composant du flux.
  • Routeur:il est toujours recommandé de configurer (modifier) la valeur du délai avant expiration des E/S pour un hôte virtuel spécifique plutôt que de la configurer sur le routeur. Cela garantit que la nouvelle valeur de délai d'expiration n'affecte que les proxys d'API qui utilisent l'hôte virtuel spécifique, et non tous les proxys d'API servis par le routeur.

    Configurez (modifiez) le délai avant expiration des E/S sur le routeur uniquement lorsque vous êtes absolument sûr que la nouvelle valeur de délai d'expiration d'E/S est requise ou applicable pour tous les proxys d'API exécutés sur le routeur.

  • Processeur de messages:il est toujours recommandé de configurer (modifier) la valeur du délai d'expiration des E/S pour un proxy d'API spécifique plutôt que de la configurer sur le processeur de messages. Cela garantit que la nouvelle valeur de délai d'inactivité n'affecte que le proxy d'API spécifique, et non tous les proxys d'API diffusés par le processeur de messages.

    Configurez (modifiez) le délai avant expiration des E/S sur le processeur de messages uniquement lorsque vous êtes absolument sûr que la nouvelle valeur de délai d'expiration d'E/S est requise ou applicable à tous les proxys d'API exécutés sur le processeur de messages.

Exemples de cas de figure

Les scénarios de cette section peuvent vous aider à comprendre comment définir correctement les valeurs de délai avant expiration des E/S.

Scénario 1: Requêtes envoyées à Apigee Edge directement depuis des applications clientes

Cette section décrit les bonnes pratiques à suivre lors de la configuration des valeurs de délai avant expiration dans une configuration Apigee Edge où il n'existe aucun composant intermédiaire entre l'application cliente et Apigee Edge, et entre Apigee Edge et votre serveur backend.

Exemple de configuration d'Apigee sans composant intermédiaire

Flux commençant au niveau du client allant vers le routeur, puis vers le processeur de messages et ensuite vers le serveur backend

Si Apigee Edge est configuré comme indiqué dans le schéma ci-dessus, sans composant intermédiaire, suivez les bonnes pratiques suivantes:

  1. L'application cliente est le premier composant du flux. Le délai avant expiration le plus élevé doit être défini sur le client.
  2. Le serveur backend est le dernier composant du flux. Le délai avant expiration le plus bas doit être défini sur le serveur backend.
  3. Configurez les valeurs du délai avant expiration sur chacun des composants dans l'ordre suivant:

    Configurer le délai avant expiration sur le client, le routeur, le processeur de messages, puis le serveur backend

    L'exemple suivant montre des valeurs de délai avant expiration définies sur les différents composants conformément aux consignes ci-dessus pour éviter tout problème:

    Configurer le délai avant expiration sur le client à 60 secondes, le routeur à 57 secondes, le processeur de messages à 55 secondes, puis le serveur backend à 52 secondes

Scénario 2: Requêtes envoyées à Apigee Edge à partir d'applications clientes via des composants intermédiaires

Cette section décrit les bonnes pratiques à suivre lors de la configuration des valeurs de délai avant expiration dans une configuration Apigee Edge où il existe un ou plusieurs composants intermédiaires entre l'application cliente et Apigee Edge, ainsi qu'entre Apigee Edge et votre serveur backend.

Les composants intermédiaires peuvent être un équilibreur de charge, un réseau de diffusion de contenu (CDN), NGINX, etc.

Exemple de configuration d'Apigee avec un composant intermédiaire entre le client et Apigee Edge, et entre Apigee Edge et le serveur backend

Flux commençant au niveau du client jusqu'au composant intermédiaire 1, puis au routeur, puis au processeur de messages, puis au composant intermédiaire 2 et enfin au serveur backend.

Si Apigee Edge est configuré comme indiqué dans le schéma ci-dessus, avec un ou plusieurs composants intermédiaires, utilisez les bonnes pratiques suivantes:

  1. L'application cliente est le premier composant du flux. La valeur la plus élevée de timeout doit être définie sur le client.
  2. Le serveur backend est le dernier composant du flux. La valeur du délai avant expiration le plus faible doit être définie sur le serveur backend.
  3. Configurez les valeurs du délai avant expiration sur chacun des composants, y compris les composants intermédiaires, dans l'ordre suivant:

    Configurer le délai avant expiration sur le client, le composant intermédiaire 1, le routeur, le processeur de messages, le composant intermédiaire 2, puis le serveur backend.

    L'exemple suivant montre des valeurs de délai avant expiration définies sur les différents composants conformément aux consignes ci-dessus pour éviter tout problème:

    Configurez le délai avant expiration sur le client à 63 secondes, puis le composant intermédiaire 1 à 60 secondes, le routeur à 57 secondes, le processeur de messages jusqu'à 55 secondes, le composant intermédiaire 2 à 52 secondes, puis le serveur backend à 59 secondes.