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:
|
Dies ist die maximale Zeit, während der der Message Processor Folgendes ausführt:
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 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:
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
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 |
Hinweis
Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie sich mit den folgenden Themen vertraut machen:
- Wenn Sie mit dem E/A-Zeitlimit nicht vertraut sind, lesen Sie die Beschreibung des Attributs
io.timeout.millis
unter TargetEndpoint Transport Property Specification. - Wenn Sie mit dem Konfigurieren von Eigenschaften für Edge für die Private Cloud nicht vertraut sind, lesen Sie Edge konfigurieren.
- Folgen Sie den Empfehlungen unter Best Practices zum Konfigurieren von E/A-Zeitüberschreitungen.
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.
- 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.
- Wählen Sie den Zielendpunkt aus, den Sie ändern möchten.
- Fügen Sie das Attribut
io.timeout.millis
mit einem geeigneten Wert unter dem Element<HTTPTargetConnection>
in derTargetEndpoint
-Konfiguration hinzu. - Speichern Sie die an Ihrem API-Proxy vorgenommenen Änderungen.
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>
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>
:
- 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.
- Wählen Sie die ServiceCallout-Richtlinie aus, die Sie ändern möchten.
- 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 Sekunden120000
.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>
- 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
:
- 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.
- Wählen Sie die ServiceCallout-Richtlinie aus, die Sie ändern möchten.
- 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 Sekunden120000
.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>
- 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:
- Ö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
- 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
- Speichern Sie die Änderungen.
- 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
- Starten Sie den Message Processor wie unten gezeigt neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 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.
- Suchen Sie auf dem Message Processor-Computer im Verzeichnis
/opt/apigee/edge-message-processor/conf
nach der EigenschaftHTTPTransport.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
- 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. - 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. - Wenn Sie das E/A-Zeitlimit immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.
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.