Configura el límite de tiempo de espera del destino en Apigee hybrid

Descripción general

A partir de la versión 1.14.2, Apigee Hybrid admite un límite de tiempo de espera del destino de hasta 10 minutos.

Apigee hybrid admite un tiempo de espera de destino io.timeout.millis de hasta 55,000 milisegundos de forma predeterminada. Consulta la Especificación de transporte de TargetEndpoint.

Para habilitar entornos en tu instalación híbrida y aumentar el límite de tiempo de espera del destino para varios extremos de destino lentos, realiza los siguientes cambios en la configuración del entorno de ejecución:

  • Configura virtualhosts[].requestTimeout entre Istio y Message Processor(MP). Consulta virtualhosts
  • Configura conf_http_HTTPTransport.io.timeout.millis entre MP y destinos

Puedes configurar estos parámetros para entornos individuales o para todos los entornos de tu instalación.

Configura el host virtual para cambiar el límite de tiempo de espera de la solicitud

El parámetro requestTimeout es el tiempo máximo (en segundos) establecido en un host virtual para que el MP procese una solicitud.

Para configurar el límite de tiempo de espera de la solicitud, puedes usar las propiedades de virtualhosts[].requestTimeout. Realiza los siguientes cambios en tu archivo overrides.yaml:

  1. Agrega la siguiente estrofa a tu archivo overrides.yaml:
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. Debes actualizar un grupo de entornos (virtualhost) a la vez. Especifica el grupo de entornos con --set envgroup=ENV_GROUP_NAME. Repite los siguientes comandos para cada grupo de entornos mencionado en el archivo overrides.yaml:

    Prueba de validación:

    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 es el nombre con el que se instaló el chart apigee-virtualhost. Por lo general, es ENV_GROUP_NAME.

    Actualiza el chart:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set envgroup=ENV_GROUP_NAME \
      -f OVERRIDES_FILE
    
  3. Verifica el estado de ApigeeRouter (AR).

    La instalación de virtualhosts crea ApigeeRouteConfig (ARC), que crea de forma interna ApigeeRoute (AR) una vez que Apigee Watcher extrae detalles relacionados del grupo de entornos desde el plano de control. Por lo tanto, verifica que el estado de AR correspondiente esté en ejecución:

    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
    

Configura entornos individuales para cambiar el límite de tiempo de espera del destino

Si los proxies que tienen extremos de destino lentos se encuentran solo en uno o algunos entornos de tu instalación, puedes configurar los entornos de forma individual para cambiar el límite de tiempo de espera del destino. Esto evita agregar impacto a otros entornos.

Para configurar entornos individuales para cambiar el límite de tiempo de espera del destino, puedes usar las propiedades de envs[].components.runtime. Realiza los siguientes cambios en tu archivo overrides.yaml:

  1. Agrega la siguiente estrofa a tu archivo overrides.yaml:
    envs:
    - name: ENV_NAME
      components.
        runtime:
          cwcAppend:
            conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Debes actualizar un entorno a la vez. Actualiza el gráfico apigee-env para cada entorno que actualices:

    Prueba de validación:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run=server
    
    • ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico apigee-env. Este nombre debe ser único entre los demás nombres de versiones de Helm de tu instalación. Por lo general, es igual a ENV_NAME. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de versión diferentes para el entorno y el grupo de entornos, por ejemplo, dev-env-release y dev-envgroup-release. Para obtener más información sobre las versiones en Helm, consulta Three big concepts class="external" en la documentación de Helm.
    • ENV_NAME es el nombre del entorno que estás actualizando.
    • OVERRIDES_FILE es tu archivo overrides.yaml editado.
  3. Actualiza el chart:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. Para verificar que esté en funcionamiento, comprueba el estado del entorno correspondiente:

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

Configura todos los entornos para cambiar el límite de tiempo de espera del destino

Los cambios en tu párrafo runtime cambiarán el límite de tiempo de espera del destino para todos los entornos de tu instalación. Puedes anular esta configuración para entornos individuales con las propiedades runtime.

  1. Agrega la siguiente estrofa a tu archivo overrides.yaml:
    runtime:
      cwcAppend:
        conf_http_HTTPTransport.io.timeout.millis: 600000   # Increase io.timeout.millis to 600000 milliseconds
    
  2. Actualiza el gráfico apigee-env para cada entorno de tu instalación:

    Prueba de validación:

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

    Actualiza el chart:

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