E/A-Zeitüberschreitung in Nachrichtenprozessoren konfigurieren

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

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

Das E/A-Zeitlimit für den Message Processor gibt an, wie lange der Message Processor wartet, bis er entweder eine Antwort vom Backend-Server erhält oder der Socket bereit ist, eine Anfrage an den Backend-Server zu senden , bevor das Zeitlimit überschritten wird.

Der Standardwert für das E/A-Zeitlimit des Message Processors beträgt 55 seconds. Dieses Zeitlimit gilt für die Backend-Server, die in der Zielendpunktkonfiguration und in der ServiceCallout Richtlinie Ihres API-Proxys konfiguriert sind.

Das E/A-Zeitlimit für Message Processors kann je nach Bedarf vom Standardwert von 55 seconds erhöht oder verringert werden. Es kann an folgenden Stellen konfiguriert werden:

  • Im API-Proxy
    • Zielendpunkt
    • ServiceCallout-Richtlinie
  • Auf dem Message Processor

Die folgenden Eigenschaften steuern das E/A-Zeitlimit für die Message Processors:

Property-Name Standort Beschreibung
io.timeout.millis

API-Proxy:

  • Zielendpunkt
  • ServiceCallout-Richtlinie

Dies ist die maximale Zeit, für die der Message Processor Folgendes ausführt:

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

Wenn innerhalb dieses Zeitlimits keine Antwort vom Backend-Server eingeht, wird das Zeitlimit für den Message Processor überschritten.

Standardmäßig wird für diese Eigenschaft der Wert verwendet, der für die HTTPTransport.io.timeout.millis Eigenschaft auf dem Message Processor festgelegt ist. Der Standardwert ist 55 seconds.

Wenn diese Eigenschaft mit einem neuen Zeitlimitwert 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, für die der Message Processor Folgendes ausführt:

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

Wenn innerhalb dieses Zeitlimits keine Antwort vom Backend-Server eingeht, wird das Zeitlimit für den Message Processor überschritten.

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 diese Eigenschaft entweder wie unter E/A-Zeitlimit für Message Processors konfigurieren beschrieben ändern oder diesen Wert überschreiben, indem Sie die io.timeout.millis Eigenschaft auf API- Proxy-Ebene festlegen.

**Hinweis** :

Hinweis

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

E/A-Zeitlimit im API-Proxy konfigurieren

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

  • Zielendpunkt
  • ServiceCallout-Richtlinie

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 die Eigenschaft io.timeout.millis konfiguriert werden, die den Wert für das E/A-Zeitlimit in Millisekunden darstellt.

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

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

    Da die Eigenschaft io.timeout.millis in Millisekunden angegeben wird, ist der Wert für 120 Sekunden 120000.

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

    Beispiel für eine Zielendpunktkonfiguration mit einer URL für den Backend-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 eine Zielendpunktkonfiguration 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 Änderungen, die Sie an Ihrem API-Proxy vorgenommen haben.

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 die Eigenschaft io.timeout.millis konfiguriert werden. Sowohl das <Timeout> Element als auch die io.timeout.millis Eigenschaft stellen die Werte für das E/A-Zeitlimit in Millisekunden dar.

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

  • Element <Timeout>.
  • Eigenschaft io.timeout.millis.

Element „Timeout“

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

  1. Wählen Sie in der Edge-UI den API-Proxy aus, in dem Sie den neuen Wert für das E/A-Zeitlimit 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 der <ServiceCallout> Konfiguration das Element <Timeout> mit einem geeigneten Wert hinzu.

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

        <Timeout>120000</Timeout>

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

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

    Beispiel für eine ServiceCallout-Richtlinienkonfiguration mit einer URL für den Backend-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 Änderungen, die Sie an Ihrem API-Proxy vorgenommen haben.

Eigenschaft „io.timeout.millis“

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

  1. Wählen Sie in der Edge-UI den API-Proxy aus, in dem Sie den neuen Wert für das E/A-Zeitlimit 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 der `TargetEndpoint`-Konfiguration unter dem <HTTPTargetConnection> Element die Eigenschaft io.timeout.millis mit einem geeigneten Wert hinzu.

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

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

    Da die Eigenschaft io.timeout.millis in Millisekunden angegeben wird, ist 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 eine ServiceCallout-Richtlinienkonfiguration mit einer URL für den Backend-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 eine ServiceCallout-Richtlinienkonfiguration 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 Änderungen, die Sie an Ihrem API-Proxy vorgenommen haben.

E/A-Zeitlimit für Message Processors konfigurieren

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

So konfigurieren Sie das E/A-Zeitlimit für die Message Processors:

  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 Eigenschaftendatei eine Zeile im folgenden Format hinzu und ersetzen Sie TIME_IN_MILLISECONDS durch einen Wert:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS

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

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. Speichern Sie die Änderungen.
  4. Achten Sie darauf, dass die Eigenschaftendatei dem Nutzer apigee gehört, wie unten gezeigt:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Starten Sie den Message Processor neu, wie unten gezeigt:
    /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 Processors.

E/A-Zeitlimit für Message Processors prüfen

In diesem Abschnitt wird erläutert, wie Sie prüfen, ob das E/A-Zeitlimit für die Message Processors erfolgreich geändert wurde.

Obwohl Sie das Token conf_http_HTTPTransport.io.timeout.millis verwenden, um das E/A-Zeitlimit für den Message Processor festzulegen, müssen Sie prüfen, ob die tatsächliche Eigenschaft 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 Wert für das E/A-Zeitlimit erfolgreich auf dem Message Processor festgelegt wurde, wird der neue Wert im obigen Befehl in der http.properties Datei angezeigt.
  3. Das Beispielergebnis des obigen Befehls, 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 sehen Sie, dass die Eigenschaft HTTPTransport.io.timeout.millis in http.properties mit dem neuen Wert 120000 festgelegt wurde. Das bedeutet, dass das E/A-Zeitlimit für den Message Processor erfolgreich auf 120 Sekunden konfiguriert wurde.

  4. Wenn Sie immer noch den alten Wert für die Eigenschaft HTTPTransport.io.timeout.millis, dann prüfen Sie, ob Sie alle Schritte unter E/A-Zeitlimit für Message Processors konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte noch einmal 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?

Informationen zum Konfigurieren des E/A-Zeitlimits für Router