Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Die API-Anfragen der Clientanwendungen durchlaufen verschiedene Komponenten in Apigee Edge bevor sie die Backend-Dienste erreichen. Die meisten Clientanwendungen erwarten, dass die Antworten auf diese Anfragen zeitnah eingehen.
Um zeitnahe Antworten zu erhalten, werden die I/O-Timeout-Werte in jeder der Komponenten festgelegt, durch die die API-Anfragen fließen. Wenn eine der Komponenten im Ablauf mehr Zeit benötigt als die vorherige Komponente, tritt für die vorherige Komponente ein Timeout ein und sie antwortet mit 504 Gateway Timeout-Fehlern.
Beim Konfigurieren des Timeouts müssen die Werte in jeder der Komponenten mit größter Sorgfalt konfiguriert werden, da sonst 504 Gateway Timeout-Fehler auftreten können.
In diesem Dokument werden Best Practices für die Konfiguration des I/O-Timeouts für verschiedene Komponenten beschrieben, durch die die API-Anfragen in Apigee Edge fließen.
Best Practices für die Konfiguration des I/O-Timeouts
Beachten Sie beim Konfigurieren des I/O-Timeouts die folgenden Best Practices:
- Erste Komponente: Verwenden Sie immer das höchste Timeout für die erste Komponente im API Anfrageablauf, die die Clientanwendung in Apigee Edge ist.
- Letzte Komponente:Verwenden Sie immer das niedrigste Timeout für die letzte Komponente im API Anfrageablauf, die der Backend-Dienst in Apigee Edge ist.
- Zwischen Komponenten: Der Timeout-Wert, der in jeder Komponente konfiguriert ist, muss sich zwischen der ersten und der letzten Komponente im Ablauf um mindestens 2 bis 3 Sekunden unterscheiden.
- Router: Es ist immer eine gute Idee, den I/O-Timeout-Wert für
einen bestimmten virtuellen Host zu konfigurieren (zu ändern), anstatt ihn auf dem Router zu konfigurieren. So wirkt sich der neue
Timeout-Wert nur auf die API-Proxys aus, die den jeweiligen virtuellen Host verwenden, und
nicht auf alle API-Proxys, die vom Router bereitgestellt werden.
Konfigurieren (ändern) Sie das I/O-Timeout auf dem Router nur, wenn Sie absolut sicher sind, dass der neue I/O-Timeout-Wert für alle API-Proxys erforderlich oder anwendbar ist, die auf dem Router ausgeführt werden.
- Message Processor: Es ist immer eine gute Idee, den I/O-Timeout
Wert für einen bestimmten API-Proxy zu konfigurieren (zu ändern), anstatt ihn auf dem Message Processor zu konfigurieren. So wirkt sich der neue Timeout-Wert nur auf den jeweiligen API-Proxy aus und nicht auf alle API
Proxys, die vom Message Processor bereitgestellt werden.
Konfigurieren (ändern) Sie das I/O-Timeout auf dem Message Processor nur, wenn Sie absolut sicher sind dass der neue I/O-Timeout-Wert für alle API-Proxys erforderlich oder anwendbar ist, die auf dem Message Processor ausgeführt werden.
Beispielszenarien
Die Szenarien in diesem Abschnitt können Ihnen helfen, die I/O-Timeout-Werte richtig festzulegen.
Szenario 1: Anfragen von Clientanwendungen direkt an Apigee Edge
In diesem Abschnitt werden die Best Practices beschrieben, die beim Einrichten der Timeout-Werte in einer Apigee Edge-Konfiguration zu beachten sind, in der es keine Zwischenkomponenten zwischen der Clientanwendung und Apigee Edge sowie zwischen Apigee Edge und Ihrem Backend-Server gibt.
Beispiel für eine Apigee-Konfiguration ohne Zwischenkomponenten
Wenn Apigee Edge wie im obigen Diagramm ohne Zwischenkomponenten eingerichtet ist, beachten Sie die folgenden Best Practices:
- Die Clientanwendung ist die erste Komponente im Ablauf. Der höchste Timeout -Wert sollte auf dem Client festgelegt werden.
- Der Backend-Server ist die letzte Komponente im Ablauf. Der niedrigste Timeout -Wert sollte auf dem Backend-Server festgelegt werden.
- Konfigurieren Sie die Timeout-Werte für jede der Komponenten in der folgenden Reihenfolge:
Das folgende Beispiel zeigt Timeout-Werte, die gemäß den oben genannten Richtlinien für die verschiedenen Komponenten festgelegt wurden, um Probleme zu vermeiden:
Szenario 2: Anfragen von Clientanwendungen über Zwischenkomponenten an Apigee Edge
In diesem Abschnitt werden die Best Practices beschrieben, die beim Einrichten der Timeout-Werte in einer Apigee Edge-Konfiguration zu beachten sind, in der es eine oder mehrere Zwischenkomponenten zwischen der Clientanwendung und Apigee Edge sowie zwischen Apigee Edge und Ihrem Backend-Server gibt.
Die Zwischenkomponenten können ein Load Balancer, ein Content Delivery Network (CDN), NGINX usw. sein.
Beispiel für eine Apigee-Konfiguration mit einer Zwischenkomponente zwischen Client und Apigee Edge sowie zwischen Apigee Edge und Backend-Server
Wenn Apigee Edge wie im obigen Diagramm mit einer oder mehreren Zwischenkomponenten eingerichtet ist, beachten Sie die folgenden Best Practices:
- Die Clientanwendung ist die erste Komponente im Ablauf. Der höchste Timeout -Wert sollte auf dem Client festgelegt werden.
- Der Backend-Server ist die letzte Komponente im Ablauf. Der niedrigste Timeout -Wert sollte auf dem Backend-Server festgelegt werden.
- Konfigurieren Sie die Timeout-Werte für jede der Komponenten, einschließlich der Zwischenkomponenten, in der folgenden Reihenfolge:
Das folgende Beispiel zeigt Timeout-Werte, die gemäß den oben genannten Richtlinien für die verschiedenen Komponenten festgelegt wurden, um Probleme zu vermeiden: