Best Practices zum Konfigurieren eines E/A-Zeitlimits

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

Die von den Clientanwendungen gestellten API-Anfragen fließen durch verschiedene Komponenten in Apigee Edge, bevor sie die Back-End-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 fließen. Wenn eine der Komponenten im Ablauf mehr Zeit benötigt als die vorherige Komponente, tritt das Zeitlimit der vorherigen Komponente auf und gibt 504 Gateway-Zeitüberschreitungsfehler zurück.

Beim Konfigurieren des Zeitlimits sollten die Werte mit äußerster Sorgfalt in jeder Komponente konfiguriert werden, da dies andernfalls zu Fehlern wegen Zeitüberschreitung im 504-Gateway führen kann.

In diesem Dokument werden Best Practices zum Konfigurieren des E/A-Zeitlimits für verschiedene Komponenten beschrieben, durch die die API-Anfragen in Apigee Edge fließen.

Best Practices zum Konfigurieren des E/A-Zeitlimits

Beachten Sie beim Konfigurieren des E/A-Zeitlimits die folgenden Best Practices:

  • Erste Komponente: Verwenden Sie immer das höchste Zeitlimit für die erste Komponente im API-Anfrageablauf, also die Clientanwendung in Apigee Edge.
  • Letzte Komponente: Verwenden Sie immer das niedrigste Zeitlimit für die letzte Komponente im API-Anfrageablauf. Dies ist der Back-End-Dienst in Apigee Edge.
  • Zwischen Komponenten: Achten Sie darauf, dass der in jeder Komponente konfigurierte Zeitüberschreitungswert zwischen der ersten und der letzten Komponente im Ablauf mindestens 2 bis 3 Sekunden beträgt.
  • Router: Es empfiehlt sich, immer den E/A-Zeitüberschreitungswert für einen bestimmten virtuellen Host zu konfigurieren (zu ändern), anstatt ihn auf dem Router zu konfigurieren. Dadurch wird sichergestellt, dass sich der neue Zeitüberschreitungswert nur auf die API-Proxys auswirkt, die den spezifischen virtuellen Host verwenden, und nicht auf alle vom Router bereitgestellten API-Proxys.

    Konfigurieren (ändern) Sie das E/A-Zeitlimit auf dem Router nur, wenn Sie absolut sicher sind, dass der neue E/A-Zeitüberschreitungswert für alle auf dem Router ausgeführten API-Proxys erforderlich oder anwendbar ist.

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

    Konfigurieren (ändern) Sie das E/A-Zeitlimit auf dem Message Processor nur, wenn Sie absolut sicher sind, dass der neue E/A-Zeitüberschreitungswert für alle auf dem Message Processor ausgeführten API-Proxys erforderlich oder anwendbar ist.

Beispielszenarien

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

Szenario 1: Anfragen an Apigee Edge von Clientanwendungen direkt

In diesem Abschnitt werden die Best Practices beschrieben, die Sie beim Einrichten der Zeitüberschreitungswerte in einer Apigee Edge-Einrichtung befolgen sollten, wenn sich zwischen der Clientanwendung und Apigee Edge sowie zwischen Apigee Edge und Ihrem Back-End-Server keine Zwischenkomponenten befinden.

Beispiel für Apigee-Einrichtung ohne Zwischenkomponenten

Datenfluss beginnt beim Client zum Router, dann zum Message Processor und dann zum Back-End-Server

Wenn Apigee Edge wie im obigen Diagramm ohne Zwischenkomponenten eingerichtet ist, verwenden 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 Back-End-Server ist die letzte Komponente im Ablauf. Der niedrigste Wert für die Zeitüberschreitung sollte auf dem Back-End-Server festgelegt werden.
  3. Konfigurieren Sie die Zeitüberschreitungswerte für jede der Komponenten in der folgenden Reihenfolge:

    Konfiguriere das Zeitlimit auf Client, Router, dann Nachrichtenprozessor und dann auf Back-End-Server.

    Das folgende Beispiel zeigt Zeitüberschreitungswerte, die für die verschiedenen Komponenten gemäß den obigen Richtlinien festgelegt wurden, um Probleme zu vermeiden:

    Konfigurieren Sie ein Zeitlimit auf dem Client bei 60 Sekunden, dann den Router bei 57 Sekunden, den Message Processor bei 55 Sekunden und den Back-End-Server bei 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-Einrichtung befolgen sollten, wenn sich eine oder mehrere Zwischenkomponenten zwischen der Clientanwendung und Apigee Edge sowie zwischen Apigee Edge und Ihrem Back-End-Server befinden.

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

Beispiel für die Apigee-Einrichtung mit einer Zwischenkomponente zwischen Client und Apigee Edge sowie zwischen Apigee Edge und Back-End-Server

Der Ablauf beginnt beim Client, der zur Zwischenkomponente 1, dann zum Router, dann zum Nachrichtenprozessor und dann zur Zwischenkomponente 2 und dann zum Back-End-Server führt.

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

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

    Konfiguriere das Zeitlimit auf dem Client, dann auf der Zwischenkomponente 1, dann auf dem Router, dann auf dem Nachrichtenprozessor, dann auf der Zwischenkomponente 2 und schließlich auf dem Back-End-Server

    Das folgende Beispiel zeigt Zeitüberschreitungswerte, die für die verschiedenen Komponenten gemäß den obigen Richtlinien festgelegt wurden, um Probleme zu vermeiden:

    Konfigurieren Sie das Zeitlimit auf dem Client bei 63 Sekunden, dann auf die Zwischenkomponente 1 bei 60 Sekunden, den Router bei 57 Sekunden, dann auf den Message Processor St 55 Sekunden, die Zwischenkomponente 2 bei 52 Sekunden und auf dem Back-End-Server bei 59 Sekunden.