E/A-Zeitüberschreitung bei Routern konfigurieren

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 auf den Routern von Apigee Edge konfigurieren.

Das E/A-Zeitlimit auf dem Router steht für die Zeit, die der Router auf eine Antwort vom Message Processor wartet, nachdem die Verbindung hergestellt und die Anfrage an den Message Processor gesendet wurde. Der Standardwert für das E/A-Zeitlimit des Routers beträgt 57 Sekunden.

Das E/A-Zeitlimit für Router kann je nach Ihren Anforderungen auf den Standardwert von 57 Sekunden erhöht oder verringert werden. Es kann auf folgende Arten konfiguriert werden:

  • In einem virtuellen Host
  • Auf dem Router

Die folgenden Attribute steuern das E/A-Zeitlimit der Router:

Eigenschaftsname Standort Beschreibung
proxy_read_timeout Virtueller Host

Gibt die maximale Zeit an, die der Router auf eine Antwort vom Message Processor wartet, nachdem die Verbindung hergestellt und die Anfrage an den Message Processor gesendet wurde.

Wenn innerhalb dieses Zeitlimits keine Antwort vom Message Processor empfangen wird, kommt es zu einer Zeitüberschreitung des Routers.

Standardmäßig verwendet dieses Attribut den Wert, der auf dem Router für das Attribut conf_load_balancing_load.balancing.driver.proxy.read.timeout festgelegt ist. Der Standardwert beträgt 57 Sekunden.

Wenn diese Eigenschaft mit einem neuen Zeitüberschreitungswert für einen bestimmten virtuellen Host geändert wird, sind nur die API-Proxys betroffen, die diesen bestimmten virtuellen Host verwenden.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Router

Gibt die maximale Zeit an, die der Router auf eine Antwort vom Message Processor wartet, nachdem die Verbindung hergestellt und die Anfrage an den Message Processor gesendet wurde.

Wenn innerhalb dieses Zeitlimits keine Antwort vom Message Processor empfangen wird, kommt es zu einer Zeitüberschreitung des Routers.

Diese Eigenschaft wird für alle virtuellen Hosts auf diesem Router verwendet.

Der Standardwert dieser Property beträgt 57 Sekunden.

Sie können dieses Attribut entweder wie unter E/A-Zeitlimit bei Routern konfigurieren unten erläutert ändern oder diesen Wert überschreiben, indem Sie das Attribut proxy_read_timeout auf der Ebene des virtuellen Hosts festlegen.

Sie können das Zeitintervall für diese Eigenschaft mit der folgenden Notation auf einen anderen Wert als Sekunden festlegen:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout Router

Gibt die Gesamtzeit an, die der Router auf eine Antwort von allen Message Processorn wartet, nachdem die Verbindung hergestellt und die Anfrage an jeden Message Processor gesendet wurde.

Dies gilt, wenn Ihre Edge-Installation mehrere Nachrichtenprozessoren hat und Wiederholungsversuche aktiviert sind, wenn Fehler auftreten. Sie hat einen der folgenden Werte:

  • Der aktuelle Wert von conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • Der Standardwert von 57 Sekunden

Wie beim Attribut conf_load_balancing_load.balancing.driver.proxy.read.timeout können Sie auch hier andere Zeitintervalle als den Standardwert (Sekunden) angeben.

Hinweis

Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie sich mit den folgenden Themen vertraut machen:

E/A-Zeitlimit im virtuellen Host konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das E/A-Zeitlimit auf dem virtuellen Host konfigurieren, der einer Organisation und Umgebung zugeordnet ist. Das E/A-Zeitlimit kann im virtuellen Host über das Attribut proxy_read_timeout konfiguriert werden, das den E/A-Zeitüberschreitungswert in Sekunden darstellt.

Sie können den virtuellen Host mit einer der folgenden Methoden konfigurieren:

  • Edge-Benutzeroberfläche
  • Edge-API

Edge-Benutzeroberfläche

So konfigurieren Sie den virtuellen Host mithilfe der Edge-Benutzeroberfläche:

  1. Melden Sie sich bei der Edge-UI an.
  2. Gehen Sie zu Admin > Virtual Hosts (Verwaltung > Virtuelle Hosts).
  3. Wählen Sie eine bestimmte Umgebung aus, für die Sie diese Änderung vornehmen möchten.
  4. Wählen Sie den spezifischen virtuellen Host aus, für den Sie den neuen E/A-Zeitüberschreitungswert konfigurieren möchten.
  5. Aktualisieren Sie unter Eigenschaften den Wert für die Zeitüberschreitung bei Proxy-Lesevorgängen in Sekunden.

    Wenn Sie beispielsweise das Zeitlimit auf 120 Sekunden ändern möchten, geben Sie 120 ein, wie in der folgenden Abbildung dargestellt:

    Proxy-Lesezeitüberschreitungswert von 120

  6. Speichern Sie die Änderung.

Edge-API

So konfigurieren Sie den virtuellen Host mithilfe der Edge API:

  1. Rufen Sie die aktuelle Konfiguration des virtuellen Hosts mithilfe der API Get virtual host (Virtuellen Host abrufen) ab, wie unten gezeigt:

    Public Cloud-Nutzer

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Private Cloud-Nutzer

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Wobei:

    {organization-name} ist der Name der Organisation.

    {environment-name} ist der Name der Umgebung.

    {virtualhost-name} ist der Name des virtuellen Hosts.

    Beispiel für eine Virtualhost-Konfiguration

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
    
  2. Fügen Sie der vorhandenen JSON-Nutzlast der virtuellen Hostkonfiguration unter properties das Attribut proxy_read_timeout mit dem Wert in Sekunden hinzu.

    Wenn Sie beispielsweise das E/A-Zeitlimit auf 120 Sekunden ändern möchten, fügen Sie den Codeblock properties hinzu, wie unten gezeigt:

    Beispiel für eine aktualisierte virtuelle Hostkonfiguration

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. Speichern Sie die aktualisierte Konfiguration des virtuellen Hosts in einer Datei. Beispiel: virtualhost-payload.json.
  4. Aktualisieren Sie die virtualhost-Konfiguration mit der Änderung mithilfe der API Virtuellen Host aktualisieren so:

    Public Cloud-Nutzer

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Private Cloud-Nutzer

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Wobei:

    {organization-name} ist der Name der Organisation.

    {environment-name} ist der Name der Umgebung.

    {virtualhost-name} ist der Name des virtuellen Hosts.

E/A-Zeitlimit auf virtuellen Hosts prüfen

In diesem Abschnitt wird erläutert, wie Sie überprüfen, ob das E/A-Zeitlimit auf dem virtuellen Host mithilfe der Edge API erfolgreich geändert wurde.

  1. Führen Sie die Get virtual host API aus, um die virtualhost-Konfiguration wie unten gezeigt zu erhalten:

    Public Cloud-Nutzer

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Private Cloud-Nutzer

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Wobei:

    {organization-name} ist der Name der Organisation.

    {environment-name} ist der Name der Umgebung.

    {virtualhost-name} ist der Name des virtuellen Hosts.

  2. Prüfen Sie, ob die Property proxy_read_timeout auf den neuen Wert gesetzt wurde.

    Beispiel für eine aktualisierte virtuelle Hostkonfiguration

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    Beachten Sie im obigen Beispiel, dass proxy_read_timeout auf den neuen Wert von 120 Sekunden festgelegt wurde.

  3. Wenn der alte Wert für proxy_read_timeout, weiterhin angezeigt wird, prüfen Sie, ob Sie alle unter E/A-Zeitlimit im virtuellen Host konfigurieren beschriebenen Schritte korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  4. Wenn Sie das E/A-Zeitlimit immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.

E/A-Zeitlimit bei Routern konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das E/A-Zeitlimit auf den Routern konfigurieren. Das E/A-Zeitlimit kann über das Routerattribut conf_load_balancing_load.balancing.driver.proxy.read.timeout konfiguriert werden, das den E/A-Zeitüberschreitungswert in Sekunden darstellt.

So konfigurieren Sie das E/A-Zeitlimit bei den Routern:

  1. Öffnen Sie auf der Router-Maschine die folgende Datei in einem Editor. Wenn sie noch nicht vorhanden ist, erstellen Sie sie.
    /opt/apigee/customer/application/router.properties
    

    Geben Sie beispielsweise den folgenden Befehl ein, um die Datei mit vi zu öffnen:

    vi /opt/apigee/customer/application/router.properties
    
  2. Fügen Sie der Datei properties eine Zeile im folgenden Format hinzu und ersetzen Sie dabei time_in_seconds durch einen Wert:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

    Wenn Sie beispielsweise das E/A-Zeitlimit des Routers auf 120 Sekunden ändern möchten, fügen Sie die folgende Zeile hinzu:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

    Sie können auch das E/A-Zeitlimit in Minuten ändern. Wenn Sie beispielsweise das Zeitlimit auf zwei Minuten ändern möchten, fügen Sie die folgende Zeile hinzu:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. Speichern Sie die Änderungen.
  5. Achten Sie darauf, dass der Inhaber dieser Property-Datei der Nutzer apigee ist (siehe unten):
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. Starten Sie den Router wie unten gezeigt neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Wenn Sie mehr als einen Router haben, wiederholen Sie die obigen Schritte für alle Router.

E/A-Zeitlimit bei den Routern verifizieren

In diesem Abschnitt wird erläutert, wie Sie überprüfen können, ob das E/A-Zeitlimit auf den Routern erfolgreich geändert wurde.

Auch wenn Sie das Token conf_load_balancing_load.balancing.driver.proxy.read.timeout verwenden, um das E/A-Zeitlimit auf dem Router festzulegen, müssen Sie prüfen, ob das tatsächliche Attribut proxy_read_timeout mit dem neuen Wert festgelegt wurde.

  1. Suchen Sie im Verzeichnis /opt/nginx/conf.d nach der Property proxy_read_timeout und prüfen Sie, ob sie mit dem neuen Wert so festgelegt wurde:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Wenn der neue E/A-Zeitüberschreitungswert auf dem Router erfolgreich festgelegt wurde, zeigt der obige Befehl den neuen Wert in allen Konfigurationsdateien des virtuellen Hosts an.

    Hier ist das Beispielergebnis des obigen grep-Befehls, wenn das E/A-Zeitlimit 120 Sekunden beträgt:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    Beachten Sie in der obigen Beispielausgabe, dass das Attribut proxy_read_timeout in 0-default.conf, der Konfigurationsdatei für den virtuellen Standardhost, auf den neuen Wert 120 gesetzt wurde. Dies bedeutet, dass das E/A-Zeitlimit auf dem Router auf 120 Sekunden konfiguriert wurde.

  3. Wenn noch der alte Wert für das Attribut proxy_read_timeout angezeigt wird, prüfen Sie, ob Sie alle Schritte unter E/A-Zeitlimit bei Routern konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  4. Wenn Sie das E/A-Zeitlimit immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.

Wie geht es weiter?

Informationen zum Konfigurieren der E/A-Zeitüberschreitung im Message Processor