Zeitüberschreitung bei Keep-Alive für 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 Keep-Alive-Zeitlimit für die Apigee Edge Message Processors konfigurieren.

Das Keep-Alive-Zeitlimit im Message Processor ermöglicht einer einzelnen TCP-Verbindung das Senden und Empfangen mehrerer HTTP-Anfragen/-Antworten vom/zum Back-End-Server, anstatt eine neue Verbindung für jedes Anfrage-/Antwort-Paar herzustellen.

Der Standardwert des Keep-Alive-Zeitlimitattributs im Message Processor beträgt 60 Sekunden. Dieser Zeitraum gilt für die Back-End-Server, die in der Zielendpunktkonfiguration und in der ServiceCallout Richtlinie Ihres API-Proxys konfiguriert sind.

Das Keep-Alive-Zeitlimit für Message Processors kann je nach Bedarf vom Standardwert von 60 Sekunden erhöht oder verringert werden. Es kann auf folgende Arten konfiguriert werden:

  • Im API-Proxy
    • Im Zielendpunkt
    • In der ServiceCallout-Richtlinie
  • Im Message Processor

Die folgenden Attribute steuern das Keep-Alive-Zeitlimit in den Message Processors:

Property-Name Standort Beschreibung
keepalive.timeout.millis API-Proxy:
  • Zielendpunkt
  • ServiceCallout-Richtlinie

Dies ist die maximale Leerlaufzeit, für die der Message Processor einer einzelnen TCP Verbindung das Senden und Empfangen mehrerer HTTP-Anfragen/-Antworten erlaubt, anstatt eine neue Verbindung für jedes Anfrage-/Antwort-Paar zu öffnen.

Standardmäßig wird für dieses Attribut der Wert verwendet, der für das HTTPClient.keepalive.timeout.millis Attribut im Message Processor festgelegt ist. Der Standardwert ist 60 Sekunden.

Wenn dieses Attribut mit einem neuen Zeitlimitwert für den Zielserver geändert wird, der im Zielendpunkt oder in der ServiceCallout Richtlinie im jeweiligen API-Proxy verwendet wird, wirkt sich dies nur auf das Keep-Alive-Zeitlimit für diesen bestimmten Zielserver aus.

HTTPClient.keepalive.timeout.millis Message Processor

Dies ist die maximale Leerlaufzeit, für die der Message Processor einer einzelnen TCP Verbindung das Senden und Empfangen mehrerer HTTP-Anfragen/-Antworten erlaubt, anstatt eine neue Verbindung für jedes Anfrage-/Antwort-Paar zu öffnen.

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

Der Standardwert dieses Attributs ist 60 Sekunden.

Sie können dieses Attribut entweder wie unten unter Keep-Alive-Zeitlimit in Message Processors konfigurieren beschrieben ändern oder diesen Wert überschreiben, indem Sie das keepalive.timeout.millis Attribut auf API-Proxy-Ebene festlegen.

Hinweis

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

Keep-Alive-Zeitlimit im API-Proxy konfigurieren

Das Keep-Alive-Zeitlimit kann an den folgenden Stellen im API-Proxy konfiguriert werden:

  • Zielendpunkt
  • ServiceCallout-Richtlinie

Keep-Alive-Zeitlimit im Zielendpunkt des API-Proxys konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das Keep-Alive-Zeitlimit im Zielendpunkt Ihres API-Proxys konfigurieren. Das Keep-Alive-Zeitlimit kann über das Attribut keepalive.timeout.millis konfiguriert werden, das den Wert des Keep-Alive-Zeitlimits in Millisekunden darstellt.

  1. Wählen Sie in der Edge-UI den API-Proxy aus, in dem Sie den neuen Wert für das Keep-Alive-Zeitlimit konfigurieren möchten.
  2. Wählen Sie den Zielendpunkt aus, den Sie ändern möchten.
  3. Fügen Sie das Attribut keepalive.timeout.millis mit einem geeigneten Wert unter dem <HTTPTargetConnection> Element in der TargetEndpoint Konfiguration hinzu.

    Wenn Sie das Keep-Alive-Zeitlimit beispielsweise auf 30 Sekunden ändern möchten, fügen Sie den folgenden Codeblock hinzu:

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>

    Da das Attribut keepalive.timeout.millis in Millisekunden angegeben wird, ist der Wert für 30 Sekunden 30000.

    Die folgenden Beispiele zeigen, wie Sie das Keep-Alive-Zeitlimit in der Zielendpunkt Konfiguration Ihres API-Proxys konfigurieren:

    Beispiel für eine Zielendpunktkonfiguration mit einer URL für den Back-End-Server

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</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="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
  4. Speichern Sie die Änderungen am API-Proxy.

Keep-Alive-Zeitlimit in der ServiceCallout-Richtlinie des API-Proxys konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das Keep-Alive-Zeitlimit in der ServiceCallout Richtlinie Ihres API-Proxys konfigurieren. Das Keep-Alive-Zeitlimit kann über das Attribut the keepalive.timeout.millis konfiguriert werden, das den Wert des Keep-Alive-Zeitlimits in Millisekunden darstellt.

So konfigurieren Sie das Keep-Alive-Zeitlimit in der ServiceCallout Richtlinie mit dem keepalive.timeout.millis Attribut:

  1. Wählen Sie in der Edge-UI den API-Proxy aus, in dem Sie den neuen Wert für das Keep-Alive-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 in der TargetEndpoint Konfiguration unter dem <HTTPTargetConnection> Element das Attribut keepalive.timeout.millis mit einem geeigneten Wert hinzu.

    Wenn Sie das Keep-Alive-Zeitlimit beispielsweise auf 30 Sekunden ändern möchten, fügen Sie den folgenden Codeblock hinzu:

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>

    Da das Attribut keepalive.timeout.millis in Millisekunden angegeben wird, ist der Wert für 30 Sekunden 30000.

    Die folgenden Beispiele zeigen, wie Sie das Keep-Alive-Zeitlimit in der ServiceCallout Richtlinie Ihres API-Proxys konfigurieren:

    Beispiel für eine ServiceCallout-Richtlinienkonfiguration mit einer URL für den Back-End-Server

    <ServiceCallout name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <HTTPTargetConnection>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</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>Service Callout-1</DisplayName>
      <Response>calloutResponse</Response>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </ServiceCallout>
  4. Speichern Sie die Änderungen am API-Proxy.

Keep-Alive-Zeitlimit in Message Processors konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das Keep-Alive-Zeitlimit in den Message Processors konfigurieren. Das Keep-Alive-Zeitlimit kann über das Attribut HTTPClient.keepalive.timeout.millis, das den Wert des Keep-Alive-Zeitlimits in Millisekunden in der Message Processor-Komponente darstellt, konfiguriert werden. Da dieses Attribut im Message Processor auskommentiert ist, müssen Sie die spezielle Syntax conf/http.properties+HTTPClient.keepalive.timeout.millis verwenden, wie im Abschnitt Ein derzeit auskommentiertes Token festlegen unter Edge konfigurieren beschrieben.

So konfigurieren Sie das Keep-Alive-Zeitlimit in den 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 Folgendes 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.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS

    Wenn Sie das Keep-Alive-Zeitlimit im Message Processor beispielsweise auf 30 Sekunden ändern möchten, fügen Sie die folgende Zeile hinzu:

    conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
  3. Speichern Sie die Änderungen.
  4. Achten Sie darauf, dass die Attributdatei 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.

Keep-Alive-Zeitlimit in Message Processors überprüfen

In diesem Abschnitt wird erläutert, wie Sie überprüfen, ob das Keep-Alive-Zeitlimit in den Message Processors erfolgreich geändert wurde.

Obwohl Sie die spezielle Syntax conf/http.properties+HTTPClient.keepalive.timeout.millis verwenden, um das Keep-Alive Zeitlimit im Message Processor festzulegen, müssen Sie prüfen, ob das tatsächliche Attribut HTTPClient.keepalive.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 dem Attribut HTTPClient.keepalive.timeout.millis und prüfen Sie, ob es mit dem neuen Wert festgelegt wurde, wie unten gezeigt:
    grep -ri "HTTPClient.keepalive.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Wenn der neue Wert für das Keep-Alive-Zeitlimit im Message Processor festgelegt wurde, wird der neue Wert im obigen Befehl in der Datei http.properties angezeigt.

    Das Beispielergebnis des obigen Befehls, nachdem Sie das Keep-Alive-Zeitlimit auf 30 Sekunden konfiguriert haben, sieht so aus:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.keepalive.timeout.millis=30000

    In der obigen Beispielausgabe sehen Sie, dass das Attribut HTTPClient.keepalive.timeout.millis in http.properties mit dem neuen Wert 30000 festgelegt wurde. Das bedeutet, dass das Keep-Alive Zeitlimit im Message Processor erfolgreich auf 30 Sekunden konfiguriert wurde.

  3. Wenn Sie immer noch den alten Wert für das Attribut HTTPClient.keepalive.timeout.millis sehen, prüfen Sie, ob Sie alle Schritte unter Keep-Alive-Zeitlimit in Message Processors konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte noch einmal.
  4. Wenn Sie das Keep-Alive-Zeitlimit immer noch nicht ändern können, wenden Sie sich an den Google Cloud Apigee Edge-Support.