Zielzeitüberschreitungslimit in Apigee Hybrid konfigurieren

Übersicht

Apigee Hybrid unterstützt standardmäßig ein Ziel-io.timeout.millis von bis zu 55.000 Millisekunden. Weitere Informationen finden Sie unter Spezifikation des TargetEndpoint Transport-Attributs.

Wenn Sie das Zeitlimit für langsame Zielendpunkte erhöhen möchten, nehmen Sie die folgenden Änderungen an Ihrer Laufzeitkonfiguration vor:

  • Konfigurieren Sie den virtualhosts[].requestTimeout zwischen Istio und dem Message Processor(MP). Siehe virtualhosts.
  • conf_http_HTTPTransport.io.timeout.millis zwischen MP und Zielen konfigurieren

Sie können diese Einstellungen für einzelne Umgebungen oder für alle Umgebungen in Ihrer Installation konfigurieren.

Virtualhost konfigurieren, um das Zeitlimit für Anfragen zu ändern

„requestTimeout“ ist die maximale Zeit (in Sekunden), die auf einem virtuellen Host für die Verarbeitung einer Anfrage durch den MP festgelegt ist.

Zum Konfigurieren des Zeitlimits für Anfragen können Sie die virtualhosts[].requestTimeout-Attribute verwenden. Nehmen Sie die folgenden Änderungen an der Datei overrides.yaml vor:

  1. Fügen Sie der Datei overrides.yaml die folgende Stanza hinzu:
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. Sie dürfen jeweils nur eine Umgebungsgruppe (virtualhost) upgraden. Geben Sie die Umgebungsgruppe mit --set envgroup=ENV_GROUP_NAME an: Wiederholen Sie folgende Befehle für alle Umgebungsgruppen, die in der Datei overrides.yaml erwähnt werden:

    Probelauf:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    ENV_GROUP_RELEASE_NAME ist der Name, mit dem Sie zuvor das Diagramm apigee-virtualhost installiert haben. In der Regel ist dies ENV_GROUP_NAME.

    Aktualisieren Sie das Diagramm:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. Prüfen Sie den Status der ApigeeRoute (AR).

    Durch die Installation von virtualhosts wird ApigeeRouteConfig (ARC) erstellt. Dieses Element erstellt intern ApigeeRoute (ARC), nachdem der Apigee-Watcher die Umgebungsgruppendetails aus der Steuerungsebene abgerufen hat. Prüfen Sie daher, ob die entsprechende AR ausgeführt wird:

    kubectl -n APIGEE_NAMESPACE get arc
    
    NAME                                STATE   AGE
    apigee-org1-dev-egroup                       2d
    kubectl -n APIGEE_NAMESPACE get ar
    
    NAME                                        STATE     AGE
    apigee-org1-dev-egroup-cb9a8a                running   2d

Einzelne Umgebungen konfigurieren, um das Zeitlimit für das Ziel zu ändern

Wenn sich die Proxys mit langsamen Zielendpunkten nur in einer oder wenigen Umgebungen in Ihrer Installation befinden, können Sie die Umgebungen einzeln konfigurieren, um das Zeitlimit für das Ziel zu ändern. So werden Auswirkungen auf andere Umgebungen vermieden.

Wenn Sie einzelne Umgebungen so konfigurieren möchten, dass das Zeitlimit für das Ziel geändert wird, können Sie die envs[].components.runtime-Attribute verwenden. Nehmen Sie die folgenden Änderungen an der Datei overrides.yaml vor:

  1. Fügen Sie der Datei overrides.yaml die folgende Stanza hinzu:
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Sie dürfen jeweils nur eine Umgebung upgraden. Aktualisieren Sie das apigee-env-Diagramm für jede Umgebung, die Sie aktualisieren:

    Probelauf:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME ist ein Name, mit dem die Installation und Upgrades des apigee-env-Diagramms verfolgt werden. Dieser Name muss sich von den anderen Helm-Releasenamen in Ihrer Installation unterscheiden. Normalerweise ist dies mit ENV_NAME identisch. Wenn Ihre Umgebung jedoch denselben Namen wie Ihre Umgebungsgruppe hat, müssen Sie für die Umgebung und die Umgebungsgruppe unterschiedliche Releasenamen verwenden, z. B. dev-env-release und dev-envgroup-release. Weitere Informationen zu Releases in Helm finden Sie in der Helm-Dokumentation unter Drei große Konzepte class="external".
    • ENV_NAME ist der Name der Umgebung, die Sie aktualisieren.
    • OVERRIDES_FILE ist die bearbeitete Datei overrides.yaml.
  3. Aktualisieren Sie das Diagramm:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. Prüfen Sie, ob sie aktiv ist, indem Sie den Status der entsprechenden Umgebung prüfen:

    kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    my-org-my-env-123abc          running     2d

Alle Umgebungen konfigurieren, um das Zeitlimit für das Ziel zu ändern

Änderungen an der runtime-Anweisung ändern das Zielzeitlimit für alle Umgebungen in Ihrer Installation. Sie können diese Einstellungen für einzelne Umgebungen mit den runtime-Attributen überschreiben.

  1. Fügen Sie der Datei overrides.yaml die folgende Stanza hinzu:
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Aktualisieren Sie das apigee-env-Diagramm für jede Umgebung in Ihrer Installation:

    Probelauf:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    

    Aktualisieren Sie das Diagramm:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE