Zeitüberschreitung bei Keep-Alive für Nachrichtenprozessoren konfigurieren

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

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

Das Keep-Alive-Zeitlimit des Message Processor ermöglicht es einer einzelnen TCP-Verbindung, mehrere HTTP-Anfragen/-Antworten vom/an den Back-End-Server zu senden und zu empfangen, anstatt für jedes Anfrage/Antwort-Paar eine neue Verbindung herzustellen.

Der Standardwert der Keep-Alive-Zeitüberschreitungseigenschaft auf dem Message Processor beträgt 60 Sekunden. Dieses Zeitlimit gilt für die Back-End-Server, die in der Konfiguration des Zielendpunkts und in der Richtlinie ServiceCallout Ihres API-Proxys konfiguriert sind.

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

  • Im API-Proxy:
    • Am Zielendpunkt
    • In der Richtlinie „ServiceCallout
  • Auf dem Message Processor

Die folgenden Eigenschaften steuern das Keep-Alive-Zeitlimit auf den Message Processorn:

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

Dies ist die maximale Leerlaufzeit, die der Message Processor für eine einzelne TCP-Verbindung zulässt, um mehrere HTTP-Anfragen/-Antworten zu senden und zu empfangen, anstatt für jedes Anfrage/Antwort-Paar eine neue Verbindung herzustellen.

Standardmäßig verwendet dieses Attribut den Wert, der für das Attribut HTTPClient.keepalive.timeout.millis auf dem Message Processor festgelegt wurde, wobei der Standardwert 60 Sekunden beträgt.

Wenn dieses Attribut mit einem neuen Zeitlimitwert für den im Zielendpunkt verwendeten Zielserver oder der Richtlinie ServiceCallout im jeweiligen API-Proxy geändert wird, ist die Keep-Alive-Zeit nur für diesen spezifischen Zielserver betroffen.

HTTPClient.keepalive.timeout.millis Message Processor

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

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

Der Standardwert dieser Property beträgt 60 Sekunden.

Sie können dieses Attribut entweder wie im Abschnitt Keep-Alive-Zeitlimit für Nachrichtenprozessoren konfigurieren unten beschrieben ändern oder diesen Wert überschreiben, indem Sie das Attribut keepalive.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:

Keep-Alive-Zeitlimit im API-Proxy konfigurieren

Das Keep-Alive-Zeitlimit kann im API-Proxy an den folgenden Stellen 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 für das Keep-Alive-Zeitlimit in Millisekunden darstellt.

  1. Wählen Sie in der Edge-Benutzeroberfläche den API-Proxy aus, in dem Sie den neuen Keep-Alive-Zeitlimitwert 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 Element <HTTPTargetConnection> in der TargetEndpoint-Konfiguration hinzu.

    Wenn Sie beispielsweise das Keep-Alive-Zeitlimit in 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, beträgt der Wert für 30 Sekunden 30000.

    Die folgenden Beispiele zeigen, wie Sie das Keep-Alive-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="keepalive.timeout.millis">30000</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="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  4. Speichern Sie die an Ihrem API-Proxy vorgenommenen Änderungen.

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 Richtlinie ServiceCallout Ihres API-Proxys konfigurieren. Das Keep-Alive-Zeitlimit kann über das Attribut the keepalive.timeout.millis konfiguriert werden, das den Wert für das Keep-Alive-Zeitlimit in Millisekunden darstellt.

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

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

    Wenn Sie beispielsweise das Keep-Alive-Zeitlimit in 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, beträgt der Wert für 30 Sekunden 30000.

    Die folgenden Beispiele zeigen, wie Sie das Keep-Alive-Zeitlimit in der Richtlinie ServiceCallout 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>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 die Konfiguration einer ServiceCallout-Richtlinie 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 an Ihrem API-Proxy vorgenommenen Änderungen.

Konfigurieren des Keep-Alive-Zeitlimits bei Message Processorn

In diesem Abschnitt wird erläutert, wie das Keep-Alive-Zeitlimit auf den Message Processorn konfiguriert wird. Das Keep-Alive-Zeitlimit kann über das Attribut HTTPClient.keepalive.timeout.millis konfiguriert werden, das den Wert für das Keep-Alive-Zeitlimit in Millisekunden für die Message Processor-Komponente darstellt. Da diese Eigenschaft im Message Processor kommentiert ist, müssen Sie die spezielle Syntax conf/http.properties+HTTPClient.keepalive.timeout.millis verwenden, wie im Abschnitt Legen Sie ein Token festlegen, das derzeit auskommentiert ist in Edge konfigurieren beschrieben wird.

So konfigurieren Sie das Keep-Alive-Zeitlimit für die Message Processor:

  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 beispielsweise das Keep-Alive-Zeitlimit des Message Processor 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. 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.

Keep-Alive-Zeitlimit bei Message Processorn verifizieren

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

Obwohl Sie die spezielle Syntax conf/http.properties+HTTPClient.keepalive.timeout.millis zum Festlegen des Keep-Alive-Zeitlimits für den Nachrichtenprozessor verwenden, 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 (siehe unten):
    grep -ri "HTTPClient.keepalive.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Wenn der neue Keep-Alive-Zeitüberschreitungswert erfolgreich auf dem Message Processor festgelegt wurde, zeigt der obige Befehl den neuen Wert in der Datei http.properties an.

    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 wurde das Attribut HTTPClient.keepalive.timeout.millis mit dem neuen Wert 30000 in http.properties festgelegt. Dies bedeutet, dass das Keep-Alive-Zeitlimit im Message Processor erfolgreich auf 30 Sekunden konfiguriert wurde.

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