E/A-Zeitüberschreitung bei Routern konfigurieren

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

In diesem Dokument wird erläutert, wie Sie das E/A-Zeitlimit für Router in Apigee Edge konfigurieren.

Das E/A-Zeitlimit für den Router gibt an, wie lange der Router wartet, bis er eine Antwort vom Message Processor erhält, nachdem er die Verbindung hergestellt und die Anfrage an den Message Processor gesendet hat. Der Standardwert für das E/A-Zeitlimit für den Router beträgt 57 Sekunden.

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

  • In einem virtuellen Host
  • Auf dem Router

Die folgenden Eigenschaften steuern das E/A-Zeitlimit für die Router:

Property-Name Standort Beschreibung
proxy_read_timeout Virtueller Host

Gibt die maximale Zeit an, die der Router wartet, bis er eine Antwort vom Message Processor erhält, nachdem er die Verbindung hergestellt und die Anfrage an den Message Processor gesendet hat.

Wenn innerhalb dieses Zeitlimits keine Antwort vom Message Processor eingeht, tritt für den Router eine Zeitüberschreitung auf.

Standardmäßig wird für diese Eigenschaft der Wert verwendet, der für die conf_load_balancing_load.balancing.driver.proxy.read.timeout Eigenschaft auf dem Router festgelegt ist. Der Standardwert ist 57 Sekunden.

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

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

Gibt die maximale Zeit an, die der Router wartet, bis er eine Antwort vom Message Processor erhält, nachdem er die Verbindung hergestellt und die Anfrage an den Message Processor gesendet hat.

Wenn innerhalb dieses Zeitlimits keine Antwort vom Message Processor eingeht, tritt für den Router eine Zeitüberschreitung auf.

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

Der Standardwert dieser Eigenschaft ist 57 Sekunden.

Sie können diese Eigenschaft entweder wie unten unter E/A-Zeitlimit für Router konfigurieren beschrieben ändern oder diesen Wert überschreiben, indem Sie die Eigenschaft 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 wartet, bis er eine Antwort von allen Message Processors erhält, nachdem er die Verbindung hergestellt und die Anfrage an jeden Message Processor gesendet hat.

Dies gilt, wenn in Ihrer Edge-Installation mehrere Message Processors vorhanden sind und Wiederholungen bei Fehlern aktiviert sind. 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 bei der conf_load_balancing_load.balancing.driver.proxy.read.timeout Eigenschaft können Sie auch andere Zeitintervalle als die Standardwerte (Sekunden) angeben.

Hinweis

Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie die folgenden Themen kennen:

E/A-Zeitlimit im virtuellen Host konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das E/A-Zeitlimit im virtuellen Host konfigurieren, der mit einer Organisation und Umgebung verknüpft ist. Das E/A-Zeitlimit kann im virtuellen Host über die Eigenschaft proxy_read_timeout, die den Wert des E/A-Zeitlimits in Sekunden darstellt, konfiguriert werden.

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

  • Edge UI
  • Edge API

Edge UI

So konfigurieren Sie den virtuellen Host über die Edge UI:

  1. Melden Sie sich in der Edge UI an.
  2. Gehen Sie zu Verwaltung > Virtuelle Hosts.
  3. Wählen Sie eine bestimmte Umgebung aus, in der Sie diese Änderung vornehmen möchten.
  4. Wählen Sie den virtuellen Host aus, für den Sie den neuen Wert für das E/A-Zeitlimit konfigurieren möchten.
  5. Aktualisieren Sie unter Eigenschaften den Wert für Proxy-Lesevorgang-Zeitlimit in Sekunden.

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

    Proxy-Lesezeitüberschreitungswert von 120

  6. Speichern Sie die Änderung.

Edge API

So konfigurieren Sie den virtuellen Host über die Edge API:

  1. Rufen Sie die aktuelle Konfiguration des virtuellen Hosts mit der Get virtual host API ab, wie unten gezeigt:

    Nutzer der Public Cloud

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

    Nutzer der Private Cloud

    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.

    Beispielkonfiguration für einen virtuellen Host

        {
          "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 Konfiguration des virtuellen Hosts unter properties die Eigenschaft proxy_read_timeout mit dem Wert in Sekunden hinzu.

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

    Beispiel für eine aktualisierte Konfiguration eines virtuellen Hosts

    {
      "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 über die Update a virtual host API wie folgt:

    Nutzer der Public Cloud

    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>
                

    Nutzer der Private Cloud

    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 für virtuelle Hosts prüfen

In diesem Abschnitt wird erläutert, wie Sie mit der Edge API prüfen, ob das E/A-Zeitlimit für den virtuellen Host erfolgreich geändert wurde.

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

    Nutzer der Public Cloud

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

    Nutzer der Private Cloud

    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 Eigenschaft proxy_read_timeout auf den neuen Wert festgelegt wurde.

    Beispiel für eine aktualisierte Konfiguration eines virtuellen Hosts

    {
      "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
    }

    Im obigen Beispiel wurde proxy_read_timeout auf den neuen Wert von 120 Sekunden festgelegt.

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

E/A-Zeitlimit für Router konfigurieren

In diesem Abschnitt wird erläutert, wie Sie das E/A-Zeitlimit für die Router konfigurieren. Das E/A-Zeitlimit kann über die Router-Eigenschaft conf_load_balancing_load.balancing.driver.proxy.read.timeout konfiguriert werden, die den Wert des E/A-Zeitlimits in Sekunden darstellt.

So konfigurieren Sie das E/A-Zeitlimit für die Router:

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

    Wenn Sie die Datei beispielsweise mit vi öffnen möchten, geben Sie den folgenden Befehl ein:

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

    Wenn Sie das E/A-Zeitlimit für den Router beispielsweise 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 das E/A-Zeitlimit auch in Minuten ändern. Wenn Sie das Zeitlimit beispielsweise 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. Prüfen Sie, ob der Nutzer apigee der Inhaber dieser Eigenschaftendatei ist, wie unten gezeigt:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. Starten Sie den Router neu, wie unten gezeigt:
    /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 für die Router prüfen

In diesem Abschnitt wird erläutert, wie Sie prüfen, ob das E/A-Zeitlimit für die Router erfolgreich geändert wurde.

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

  1. Suchen Sie im /opt/nginx/conf.d Verzeichnis nach der Eigenschaft proxy_read_timeout und prüfen Sie, ob sie mit dem neuem Wert festgelegt wurde:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. Wenn der neue Wert für das E/A-Zeitlimit erfolgreich auf dem Router festgelegt wurde, wird der neue Wert im obigen Befehl in allen Konfigurationsdateien des virtuellen Hosts angezeigt.

    Das folgende Beispiel zeigt das Ergebnis 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;

    In der obigen Beispielausgabe wurde die Eigenschaft proxy_read_timeout in 0-default.conf mit dem neuen Wert 120 festgelegt. Dies ist die Konfigurationsdatei für den Standard-virtuellen Host. Das bedeutet, dass das E/A-Zeitlimit auf dem Router erfolgreich auf 120 Sekunden konfiguriert wurde.

  3. Wenn Sie immer noch den alten Wert für die Eigenschaft proxy_read_timeout sehen, dann prüfen Sie, ob Sie alle Schritte unter E/A-Zeitlimit für Router konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte noch einmal.
  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 des E/A-Zeitlimits im Message Processor