Configurer le délai avant expiration des E/S sur les processeurs de message

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

Ce document explique comment configurer le délai d'E/S pour les processeurs de messages Apigee Edge.

Le délai d'E/S sur le processeur de messages représente le temps pendant lequel le processeur de messages attend de recevoir une réponse du serveur backend ou que le socket soit prêt à écrire une requête sur le serveur backend, avant d'expirer.

La valeur par défaut du délai d'E/S du processeur de messages est de 55 seconds. Cette période de délai s'applique aux serveurs backend configurés dans la configuration du point de terminaison cible et dans la règle ServiceCallout de votre proxy d'API.

Le délai d'E/S des processeurs de messages peut être augmenté ou diminué par rapport à la valeur par défaut de 55 seconds en fonction de vos besoins. Il peut être configuré aux emplacements suivants :

  • Dans le proxy d'API
    • Point de terminaison cible
    • Règle ServiceCallout
  • Sur le processeur de messages

Les propriétés suivantes contrôlent le délai d'E/S sur les processeurs de messages :

Nom de la propriété Emplacement Description
io.timeout.millis

Proxy d'API :

  • Point de terminaison cible
  • Règle ServiceCallout

Il s'agit du délai maximal pendant lequel le processeur de messages effectue les opérations suivantes :

  • Attend de recevoir une réponse du serveur backend, après avoir établi la connexion et envoyé la requête au serveur backend OU
  • Attend que le socket soit prêt pour que le processeur de messages envoie la requête au serveur backend.

Si le serveur backend ne répond pas dans ce délai, le processeur de messages expire.

Par défaut, cette propriété prend la valeur définie pour la HTTPTransport.io.timeout.millis propriété sur le processeur de messages. La valeur par défaut est 55 seconds.

Si cette propriété est modifiée avec une nouvelle valeur de délai pour un proxy d'API spécifique, seul ce proxy d'API est affecté.

HTTPTransport.io.timeout.millis Processeur de messages

Il s'agit du délai maximal pendant lequel le processeur de messages effectue les opérations suivantes :

  • Attend de recevoir une réponse du serveur backend, après avoir établi la connexion et envoyé la requête au serveur backend OU
  • Attend que le socket soit prêt pour que le processeur de messages envoie la requête au serveur backend.

Si le serveur backend ne répond pas dans ce délai, le processeur de messages expire.

Cette propriété est utilisée pour tous les proxys d'API exécutés sur ce processeur de messages.

La valeur par défaut de cette propriété est 55 seconds.

Vous pouvez modifier cette propriété comme expliqué dans Configurer le délai d'E/S sur les processeurs de messages, ou vous pouvez remplacer cette valeur en définissant la propriété io.timeout.millis au niveau du proxy d'API.

Avant de commencer

Avant de suivre les étapes de ce document, assurez-vous de bien comprendre les sujets suivants :

Configurer le délai d'E/S dans un proxy d'API

Le délai d'E/S peut être configuré aux emplacements suivants du proxy d'API :

  • Point de terminaison cible
  • Règle ServiceCallout

Configurer le délai d'E/S dans le point de terminaison cible du proxy d'API

Cette section explique comment configurer le délai d'E/S dans le point de terminaison cible de votre proxy d'API. Le délai d'E/S peut être configuré via la propriété io.timeout.millis, qui représente la valeur du délai d'E/S en millisecondes.

  1. Dans l'interface utilisateur Edge, sélectionnez le proxy d'API spécifique dans lequel vous souhaitez configurer la nouvelle valeur de délai d'E/S.
  2. Sélectionnez le point de terminaison cible spécifique que vous souhaitez modifier.
  3. Ajoutez la propriété io.timeout.millis avec une valeur appropriée sous l' <HTTPTargetConnection> élément dans la TargetEndpoint configuration.
  4. Par exemple, pour modifier le délai d'E/S à 120 secondes, ajoutez le bloc de code suivant :

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>

    Étant donné que la propriété io.timeout.millis est exprimée en millisecondes, la valeur de 120 secondes est 120000.

    Les exemples suivants montrent comment configurer le délai d'E/S dans la configuration du point de terminaison cible configuration de votre proxy d'API :

    Exemple de configuration de point de terminaison cible à l'aide d'une URL pour le serveur backend

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>

    Exemple de configuration de point de terminaison cible à l'aide d'un serveur cible

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
  5. Enregistrez les modifications apportées à votre proxy d'API.

Configurer le délai d'E/S dans la règle ServiceCallout du proxy d'API

Cette section explique comment configurer le délai d'E/S dans la règle ServiceCallout de votre proxy d'API. Le délai d'E/S peut être configuré via l'élément <Timeout> ou la propriété io.timeout.millis. L'élément <Timeout> et la propriété io.timeout.millis représentent les valeurs de délai d'E/S en millisecondes.

Vous pouvez configurer le délai d'E/S dans la règle ServiceCallout à l'aide de l'une des méthodes suivantes :

  • <Timeout> élément.
  • Propriété io.timeout.millis

Élément Timeout

Pour configurer le délai d'E/S dans la règle ServiceCallout à l'aide de l'élément <Timeout>, procédez comme suit :

  1. Dans l'interface utilisateur Edge, sélectionnez le proxy d'API spécifique dans lequel vous souhaitez configurer la nouvelle valeur de délai d'E/S pour la règle ServiceCallout.
  2. Sélectionnez la règle ServiceCallout spécifique que vous souhaitez modifier.
  3. Ajoutez l'élément <Timeout> avec une valeur appropriée sous la <ServiceCallout> configuration.

    Par exemple, pour modifier le délai d'E/S à 120 secondes, ajoutez la ligne de code suivante :

        <Timeout>120000</Timeout>

    Étant donné que l'élément <Timeout> est exprimé en millisecondes, la valeur de 120 secondes est 120000.

    L'exemple suivant montre comment configurer le délai d'E/S dans la règle ServiceCallout à l'aide de l'élément <Timeout> :

    Exemple de configuration de règle ServiceCallout à l'aide d'une URL pour le serveur backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
  4. Enregistrez les modifications apportées à votre proxy d'API.

Propriété io.timeout.millis

Pour configurer le délai d'E/S dans la règle ServiceCallout à l'aide de la io.timeout.millis propriété, procédez comme suit :

  1. Dans l'interface utilisateur Edge, sélectionnez le proxy d'API spécifique dans lequel vous souhaitez configurer la nouvelle valeur de délai d'E/S pour la règle ServiceCallout.
  2. Sélectionnez la règle ServiceCallout spécifique que vous souhaitez modifier.
  3. Ajoutez la propriété io.timeout.millis avec une valeur appropriée sous l' <HTTPTargetConnection> élément dans la configuration TargetEndpoint.

    Par exemple, pour modifier le délai d'E/S à 120 secondes, ajoutez le bloc de code suivant :

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>

    Étant donné que la propriété io.timeout.millis est exprimée en millisecondes, la valeur de 120 secondes est 120000.

    Les exemples suivants montrent comment configurer le délai d'E/S dans la configuration du point de terminaison cible de votre proxy d'API :

    Exemple de configuration de règle ServiceCallout à l'aide d'une URL pour le serveur backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>

    Exemple de configuration de règle ServiceCallout à l'aide d'un serveur cible

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
  4. Enregistrez les modifications apportées à votre proxy d'API.

Configurer le délai d'E/S sur les processeurs de messages

Cette section explique comment configurer le délai d'E/S sur les processeurs de messages. Le délai d'E/S peut être configuré via la propriété HTTPTransport.io.timeout.millis, qui représente la valeur du délai d'E/S en millisecondes sur le composant de processeur de messages, à l'aide du jeton conformément à la syntaxe décrite dans Configurer Edge.

Pour configurer le délai d'E/S sur les processeurs de messages, procédez comme suit :

  1. Sur la machine du processeur de messages, ouvrez le fichier suivant dans un éditeur. S'il n'existe pas déjà, créez-le.
    /opt/apigee/customer/application/message-processor.properties

    Par exemple, pour ouvrir le fichier à l'aide de vi, saisissez la commande suivante :

    vi /opt/apigee/customer/application/message-processor.properties
  2. Ajoutez une ligne au format suivant au fichier de propriétés, en remplaçant TIME_IN_MILLISECONDS par une valeur :
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS

    Par exemple, pour modifier le délai d'E/S sur le processeur de messages à 120 secondes, ajoutez la ligne suivante :

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. Enregistrez les modifications.
  4. Assurez-vous que le fichier de propriétés appartient à l'utilisateur apigee, comme indiqué ci-dessous :
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Redémarrez le processeur de messages, comme indiqué ci-dessous :
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Si vous avez plusieurs processeurs de messages, répétez les étapes ci-dessus sur tous les processeurs de messages.

Vérifier le délai d'E/S sur les processeurs de messages

Cette section explique comment vérifier que le délai d'E/S a été modifié sur les processeurs de messages.

Même si vous utilisez le jeton conf_http_HTTPTransport.io.timeout.millis pour définir le délai d'E/S sur le processeur de messages, vous devez vérifier si la propriété HTTPTransport.io.timeout.millis a été définie avec la nouvelle valeur.

  1. Sur la machine du processeur de messages, recherchez la propriété HTTPTransport.io.timeout.millis dans le répertoire /opt/apigee/edge-message-processor/conf et vérifiez si elle a été définie avec la nouvelle valeur, comme indiqué ci-dessous :
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. Si la nouvelle valeur de délai d'E/S est correctement définie sur le processeur de messages, la commande ci-dessus affiche la nouvelle valeur dans le fichier http.properties.
  3. L'exemple de résultat de la commande ci-dessus après avoir configuré le délai d'E/S sur 120 secondes est le suivant :

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000

    Dans l'exemple de résultat ci-dessus, notez que la propriété HTTPTransport.io.timeout.millis a été définie avec la nouvelle valeur 120000 dans http.properties. Cela indique que le délai d'E/S est correctement configuré sur 120 secondes sur le processeur de messages.

  4. Si vous voyez toujours l'ancienne valeur pour la propriété HTTPTransport.io.timeout.millis, vérifiez que vous avez suivi correctement toutes les étapes décrites dans Configurer le délai d'E/S sur les processeurs de messages. Si vous avez manqué une étape, répétez-les toutes correctement.
  5. Si vous ne parvenez toujours pas à modifier le délai d'E/S, veuillez contacter l'assistance Apigee Edge.

Et ensuite ?

Découvrez comment configurer le délai d'E/S sur les routeurs.