Best Practices zum Konfigurieren eines E/A-Zeitlimits

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Die von den Clientanwendungen gesendeten API-Anfragen werden durch verschiedene Komponenten in Apigee Edge geleitet, 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 E/A-Zeitüberschreitungswerte in jeder der Komponenten festgelegt, durch die die API-Anfragen geleitet werden. Wenn eine der Komponenten im Ablauf mehr Zeit in Anspruch nimmt als die vorherige Komponente, tritt bei der vorherigen Komponente ein Zeitüberschreitungsfehler auf und es wird eine 504-Gateway-Zeitüberschreitungsfehlermeldung zurückgegeben.

Bei der Konfiguration des Zeitlimits sollten die Werte in jeder Komponente mit äußerster Sorgfalt konfiguriert werden, da es sonst zu Fehlern vom Typ „504 Gateway-Zeitüberschreitung“ kommen kann.

In diesem Dokument werden Best Practices für die Konfiguration des I/O-Zeitlimits für verschiedene Komponenten beschrieben, über die die API-Anfragen in Apigee Edge fließen.

Best Practices für die Konfiguration des I/O-Zeitlimits

Beachten Sie beim Konfigurieren des I/O-Zeitlimits die folgenden Best Practices:

  • Erste Komponente:Verwenden Sie für die erste Komponente im API-Anfrageablauf immer die höchste Zeitüberschreitung. Das ist die Clientanwendung in Apigee Edge.
  • Letzte Komponente:Verwenden Sie für die letzte Komponente im API-Anfrageablauf immer die kürzeste Zeitüberschreitung. Das ist der Back-End-Dienst in Apigee Edge.
  • Zwischen Komponenten:Der in jeder Komponente konfigurierte Zeitüberschreitungs-Wert zwischen der ersten und der letzten Komponente im Fluss muss mindestens 2 bis 3 Sekunden betragen.
  • Router:Es empfiehlt sich, den E/A-Zeitüberschreitungswert für einen bestimmten virtuellen Host zu konfigurieren (zu ändern), anstatt ihn auf dem Router zu konfigurieren. So wird sichergestellt, dass sich der neue Zeitüberschreitungs-Wert nur auf die API-Proxys auswirkt, die den jeweiligen virtuellen Host verwenden, und nicht auf alle API-Proxys, die vom Router bereitgestellt werden.

    Konfigurieren (ändern) Sie die I/O-Zeitüberschreitung auf dem Router nur, wenn Sie absolut sicher sind, dass der neue I/O-Zeitüberschreitungswert für alle API-Proxys erforderlich oder für alle API-Proxys auf dem Router anwendbar ist.

  • Message Processor:Es empfiehlt sich, den E/A-Zeitlimitwert für einen bestimmten API-Proxy zu konfigurieren (zu ändern), anstatt ihn im Message Processor zu konfigurieren. So wird sichergestellt, dass sich der neue Zeitüberschreitungswert nur auf den jeweiligen API-Proxy und nicht auf alle API-Proxys auswirkt, die vom Message Processor bereitgestellt werden.

    Konfigurieren (ändern) Sie die I/O-Zeitüberschreitung im Message Processor nur, wenn Sie absolut sicher sind, dass der neue I/O-Zeitüberschreitungswert für alle API-Proxys erforderlich oder für alle API-Proxys anwendbar ist, die auf dem Message Processor ausgeführt werden.

Beispielszenarien

Anhand der Szenarien in diesem Abschnitt können Sie nachvollziehen, wie Sie die Zeitüberschreitungswerte für die E/A richtig festlegen.

Szenario 1: Anfragen direkt von Clientanwendungen an Apigee Edge

In diesem Abschnitt werden die Best Practices beschrieben, die beim Einrichten der Zeitüberschreitungswerte in einer Apigee Edge-Umgebung befolgt werden sollten, 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-Einrichtung ohne Zwischenkomponenten

Ablauf, der beim Client beginnt, zum Router und dann zum Nachrichtenprozessor und zum Backend-Server weitergeleitet wird

Wenn Apigee Edge wie im Diagramm oben ohne Zwischenkomponenten eingerichtet ist, beachten Sie die folgenden Best Practices:

  1. Die Clientanwendung ist die erste Komponente im Ablauf. Der Wert für höchstes Zeitlimit sollte auf dem Client festgelegt werden.
  2. Der Backend-Server ist die letzte Komponente im Ablauf. Der Wert für die niedrigste Zeitüberschreitung sollte auf dem Back-End-Server festgelegt werden.
  3. Konfigurieren Sie die Zeitüberschreitungswerte für die einzelnen Komponenten in der folgenden Reihenfolge:

    Zeitüberschreitung für Client, dann Router, dann Nachrichtenprozessor und dann Backend-Server konfigurieren

    Im folgenden Beispiel sind die Zeitüberschreitungswerte für die verschiedenen Komponenten gemäß den oben genannten Richtlinien festgelegt, um Probleme zu vermeiden:

    Konfigurieren Sie das Zeitlimit für den Client auf 60 Sekunden, dann für den Router auf 57 Sekunden, dann für den Message Processor auf 55 Sekunden und dann für den Backend-Server auf 52 Sekunden.

Szenario 2: Anfragen an Apigee Edge von Clientanwendungen über Zwischenkomponenten

In diesem Abschnitt werden die Best Practices beschrieben, die Sie beim Einrichten der Zeitüberschreitungswerte in einer Apigee Edge-Umgebung beachten sollten, in der sich eine oder mehrere Zwischenkomponenten zwischen der Clientanwendung und Apigee Edge sowie zwischen Apigee Edge und Ihrem Backend-Server befinden.

Die Zwischenkomponenten können ein Load Balancer, ein Content Delivery Network (CDN), NGINX usw. sein.

Beispiel für eine Apigee-Einrichtung mit einer Zwischenkomponente zwischen Client und Apigee Edge sowie zwischen Apigee Edge und Backend-Server

Ablauf, der beim Client beginnt und über die Zwischenkomponente 1, den Router, den Message Processor, die Zwischenkomponente 2 und den Backend-Server führt

Wenn Apigee Edge wie im Diagramm oben mit einer oder mehreren Zwischenkomponenten eingerichtet ist, beachten Sie die folgenden Best Practices:

  1. Die Clientanwendung ist die erste Komponente im Ablauf. Der höchste Zeitüberschreitungswert sollte auf dem Client festgelegt werden.
  2. Der Backend-Server ist die letzte Komponente im Ablauf. Der niedrigste Zeitüberschreitungswert sollte auf dem Back-End-Server festgelegt werden.
  3. Konfigurieren Sie die Zeitüberschreitungswerte für alle Komponenten, einschließlich der Zwischenkomponenten, in der folgenden Reihenfolge:

    Konfigurieren Sie die Zeitüberschreitung auf dem Client, dann auf der Zwischenkomponente 1, dann auf dem Router, dann auf dem Message Processor, dann auf der Zwischenkomponente 2 und dann auf dem Backend-Server.

    Im folgenden Beispiel sind die Zeitüberschreitungswerte für die verschiedenen Komponenten gemäß den oben genannten Richtlinien festgelegt, um Probleme zu vermeiden:

    Konfigurieren Sie die Zeitüberschreitung für den Client auf 63 Sekunden, dann für die Zwischenkomponente 1 auf 60 Sekunden, dann für den Router auf 57 Sekunden, dann für den Nachrichtenprozessor auf 55 Sekunden, dann für die Zwischenkomponente 2 auf 52 Sekunden und dann für den Backend-Server auf 59 Sekunden.