E/A-Zeitüberschreitung in Nachrichtenprozessoren konfigurieren

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

In diesem Dokument wird erläutert, wie Sie das E/A-Zeitlimit für die Apigee Edge-Nachrichtenprozessoren konfigurieren.

Das E/A-Zeitlimit des Message Processor steht für die Zeit, die der Message Processor entweder auf den Empfang einer Antwort vom Back-End-Server oder darauf wartet, dass der Socket bereit ist, eine Anfrage an den Back-End-Server zu schreiben, bevor das Zeitlimit überschritten wird.

Der Standardwert für das E/A-Zeitlimit des Message Processor ist 55 seconds. Dieses Zeitlimit gilt für die Back-End-Server, die in der Konfiguration des Zielendpunkts und in der ServiceCallout-Richtlinie Ihres API-Proxys konfiguriert sind.

Das E/A-Zeitlimit für Message Processors kann je nach Ihren Anforderungen auf den Standardwert 55 seconds erhöht oder gesenkt werden. Es kann an den folgenden Stellen konfiguriert werden:

  • Im API-Proxy:
    • Zielendpunkt
    • ServiceCallout policy
  • Auf dem Message Processor

Die folgenden Eigenschaften steuern das E/A-Zeitlimit der Message Processor:

Eigenschaftsname Standort Beschreibung
io.timeout.millis

API-Proxy:

  • Zielendpunkt
  • Service-Callout-Richtlinie

Dies ist die maximale Zeit, während der der Message Processor Folgendes ausführt:

  • Wartet auf eine Antwort vom Back-End-Server, nachdem die Verbindung hergestellt und die Anfrage an den Back-End-Server gesendet wurde ODER
  • Wartet, bis der Socket bereit ist, damit der Message Processor die Anfrage an den Back-End-Server senden kann.

Wenn innerhalb dieses Zeitlimits keine Antwort vom Back-End-Server eingeht, tritt eine Zeitüberschreitung des Message Processor ein.

Standardmäßig verwendet dieses Attribut den Wert, der für das Attribut HTTPTransport.io.timeout.millis auf dem Message Processor festgelegt wurde. Der Standardwert ist 55 seconds.

Wenn diese Eigenschaft mit einem neuen Zeitüberschreitungswert für einen bestimmten API-Proxy geändert wird, ist nur dieser API-Proxy betroffen.

HTTPTransport.io.timeout.millis Message Processor

Dies ist die maximale Zeit, während der der Message Processor Folgendes ausführt:

  • Wartet auf eine Antwort vom Back-End-Server, nachdem die Verbindung hergestellt und die Anfrage an den Back-End-Server gesendet wurde ODER
  • Wartet, bis der Socket bereit ist, damit der Message Processor die Anfrage an den Back-End-Server senden kann.

Wenn innerhalb dieses Zeitlimits keine Antwort vom Back-End-Server eingeht, tritt eine Zeitüberschreitung des Message Processor ein.

Diese Eigenschaft wird für alle API-Proxys verwendet, die auf diesem Message Processor ausgeführt werden.

Der Standardwert dieser Eigenschaft ist 55 seconds.

Sie können dieses Attribut entweder wie unter E/A-Zeitlimit für Nachrichtenprozessoren konfigurieren erläutert ändern oder diesen Wert überschreiben, indem Sie das Attribut io.timeout.millis auf API-Proxyebene festlegen.

Hinweis

Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie sich mit den folgenden Themen vertraut machen:

E/A-Zeitlimit im API-Proxy konfigurieren

Das E/A-Zeitlimit kann an den folgenden API-Proxy-Orten konfiguriert werden:

  • Zielendpunkt
  • ServiceCallout policy

E/A-Zeitlimit im Zielendpunkt des API-Proxys konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das E/A-Zeitlimit im Zielendpunkt Ihres API-Proxys konfigurieren. Das E/A-Zeitlimit kann über das Attribut io.timeout.millis konfiguriert werden, das den E/A-Zeitüberschreitungswert in Millisekunden darstellt.

  1. Wählen Sie in der Edge-Benutzeroberfläche den jeweiligen API-Proxy aus, in dem Sie den neuen E/A-Zeitüberschreitungswert konfigurieren möchten.
  2. Wählen Sie den Zielendpunkt aus, den Sie ändern möchten.
  3. Fügen Sie das Attribut io.timeout.millis mit einem geeigneten Wert unter dem Element <HTTPTargetConnection> in der TargetEndpoint-Konfiguration hinzu.
  4. Wenn Sie beispielsweise das E/A-Zeitlimit auf 120 Sekunden ändern möchten, fügen Sie den folgenden Codeblock hinzu:

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

    Da das Attribut io.timeout.millis in Millisekunden angegeben ist, beträgt der Wert für 120 Sekunden 120000.

    Die folgenden Beispiele zeigen, wie Sie das E/A-Zeitlimit in der Zielendpunktkonfiguration Ihres API-Proxys konfigurieren:

    Beispiel für die Konfiguration eines Zielendpunkts mit der URL für den Back-End-Server

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

    Beispiel für die Konfiguration eines Zielendpunkts mit einem Zielserver

    <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. Speichern Sie die an Ihrem API-Proxy vorgenommenen Änderungen.

E/A-Zeitlimit in der ServiceCallout-Richtlinie des API-Proxys konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das E/A-Zeitlimit in der ServiceCallout-Richtlinie Ihres API-Proxys konfigurieren. Das E/A-Zeitlimit kann entweder über das Element <Timeout> oder das Attribut io.timeout.millis konfiguriert werden. Sowohl das Element <Timeout> als auch das Attribut io.timeout.millis geben die E/A-Zeitüberschreitungswerte in Millisekunden an.

Sie können das E/A-Zeitlimit in der ServiceCallout-Richtlinie mit einer der folgenden Methoden konfigurieren:

  • <Timeout>-Element.
  • io.timeout.millis-Property.

Zeitüberschreitungselement

So konfigurieren Sie das E/A-Zeitlimit in der ServiceCallout-Richtlinie mit dem Element <Timeout>:

  1. Wählen Sie in der Edge-Benutzeroberfläche den jeweiligen API-Proxy aus, in dem Sie den neuen E/A-Zeitüberschreitungswert für die ServiceCallout-Richtlinie konfigurieren möchten.
  2. Wählen Sie die ServiceCallout-Richtlinie aus, die Sie ändern möchten.
  3. Fügen Sie das Element <Timeout> mit einem geeigneten Wert in der Konfiguration <ServiceCallout> hinzu.

    Wenn Sie beispielsweise das E/A-Zeitlimit auf 120 Sekunden ändern möchten, fügen Sie die folgende Codezeile hinzu:

        <Timeout>120000</Timeout>
    

    Da das Element <Timeout> in Millisekunden angegeben wird, beträgt der Wert für 120 Sekunden 120000.

    Das folgende Beispiel zeigt, wie Sie das E/A-Zeitlimit in der ServiceCallout-Richtlinie mit dem Element <Timeout> konfigurieren:

    Beispiel für die Konfiguration einer ServiceCallout-Richtlinie mit der URL für den Back-End-Server

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Speichern Sie die an Ihrem API-Proxy vorgenommenen Änderungen.

Property „io.timeout.millis“

So konfigurieren Sie das E/A-Zeitlimit in der ServiceCallout-Richtlinie mit dem Attribut io.timeout.millis:

  1. Wählen Sie in der Edge-Benutzeroberfläche den jeweiligen API-Proxy aus, in dem Sie den neuen E/A-Zeitüberschreitungswert für die ServiceCallout-Richtlinie konfigurieren möchten.
  2. Wählen Sie die ServiceCallout-Richtlinie aus, die Sie ändern möchten.
  3. Fügen Sie in der TargetEndpoint-Konfiguration das Attribut io.timeout.millis mit einem geeigneten Wert unter dem Element <HTTPTargetConnection> hinzu.

    Wenn Sie beispielsweise das E/A-Zeitlimit auf 120 Sekunden ändern möchten, fügen Sie den folgenden Codeblock hinzu:

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

    Da das Attribut io.timeout.millis in Millisekunden angegeben ist, beträgt der Wert für 120 Sekunden 120000.

    Die folgenden Beispiele zeigen, wie Sie das E/A-Zeitlimit in der Zielendpunktkonfiguration Ihres API-Proxys konfigurieren:

    Beispiel für die Konfiguration einer ServiceCallout-Richtlinie mit der URL für den Back-End-Server

    <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>
    

    Beispiel für die Konfiguration einer ServiceCallout-Richtlinie mit einem Zielserver

    <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. Speichern Sie die an Ihrem API-Proxy vorgenommenen Änderungen.

E/A-Zeitlimit auf Message Processorn konfigurieren

In diesem Abschnitt wird erläutert, wie das E/A-Zeitlimit auf den Message Processorn konfiguriert wird. Das E/A-Zeitlimit kann über das Attribut HTTPTransport.io.timeout.millis konfiguriert werden, das den E/A-Zeitüberschreitungswert in Millisekunden auf der Message Processor-Komponente darstellt. Verwenden Sie dazu das Token gemäß der Syntax, die unter Edge konfigurieren beschrieben wird.

So konfigurieren Sie das E/A-Zeitlimit auf den Message Processorn:

  1. Öffnen Sie auf dem Message Processor-Computer die folgende Datei in einem Editor. Wenn sie noch nicht vorhanden ist, erstellen Sie sie.
    /opt/apigee/customer/application/message-processor.properties
    

    Wenn Sie die Datei beispielsweise mit vi öffnen möchten, geben Sie den folgenden Befehl ein:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Fügen Sie der Attributdatei eine Zeile im folgenden Format hinzu und ersetzen Sie TIME_IN_MILLISECONDS durch einen Wert:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

    Fügen Sie beispielsweise die folgende Zeile hinzu, um das E/A-Zeitlimit des Message Processor auf 120 Sekunden zu ändern:

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Speichern Sie die Änderungen.
  4. Prüfen Sie, ob der Inhaber der Property-Datei dem apigee-Nutzer ist (siehe unten):
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Starten Sie den Message Processor wie unten gezeigt neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Wenn Sie mehr als einen Message Processor haben, wiederholen Sie die obigen Schritte für alle Message Processor.

E/A-Zeitlimit auf Message Processorn verifizieren

In diesem Abschnitt wird erläutert, wie Sie überprüfen können, ob das E/A-Zeitlimit auf den Message Processorn geändert wurde.

Obwohl Sie das Token conf_http_HTTPTransport.io.timeout.millis verwenden, um das E/A-Zeitlimit des Message Processor festzulegen, müssen Sie prüfen, ob das tatsächliche Attribut HTTPTransport.io.timeout.millis mit dem neuen Wert festgelegt wurde.

  1. Suchen Sie auf dem Message Processor-Computer im Verzeichnis /opt/apigee/edge-message-processor/conf nach der Eigenschaft HTTPTransport.io.timeout.millis und prüfen Sie, ob sie mit dem neuen Wert festgelegt wurde, wie unten gezeigt:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Wenn der neue E/A-Zeitüberschreitungswert auf dem Message Processor festgelegt wurde, zeigt der obige Befehl den neuen Wert in der Datei http.properties an.
  3. Das Beispielergebnis aus dem obigen Befehl, nachdem Sie das E/A-Zeitlimit auf 120 Sekunden konfiguriert haben, sieht so aus:

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

    In der obigen Beispielausgabe wurde das Attribut HTTPTransport.io.timeout.millis mit dem neuen Wert 120000 in http.properties festgelegt. Dies bedeutet, dass das E/A-Zeitlimit auf dem Message Processor auf 120 Sekunden konfiguriert wurde.

  4. Wenn noch der alte Wert für das Attribut HTTPTransport.io.timeout.millis angezeigt wird, prüfen Sie, ob Sie alle Schritte unter E/A-Zeitlimit für Nachrichtenprozessoren konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  5. Wenn Sie das E/A-Zeitlimit immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.

Wie geht es weiter?

E/A-Zeitlimit für Router konfigurieren