Configurar el límite de tiempo de espera de destino en Apigee Hybrid

Información general

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 Endpoint de destino.

Para aumentar el límite de tiempo de espera de los endpoints de destino lentos, haz los siguientes cambios en la configuración del tiempo de ejecución:

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

Puedes configurar estos ajustes para entornos concretos o para todos los entornos de tu instalación.

Configurar el host virtual para cambiar el límite de tiempo de espera de las solicitudes

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

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

  1. Añade la siguiente estrofa a tu archivo overrides.yaml:
    virtualhosts:
    - name: ENV_GROUP_NAME
      requestTimeout: 600   # Increase requestTimeout to 600 seconds
    
  2. Debes actualizar los grupos de entornos (virtualhost) de uno en uno. 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 funcionamiento:

    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 instalaste el gráfico apigee-virtualhost. Suele ser ENV_GROUP_NAME.

    Actualiza el gráfico:

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

    Al instalar virtualhosts se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":

    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

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

Si los proxies que tienen endpoints de destino lentos están en uno o varios entornos de tu instalación, puedes configurar los entornos individualmente para cambiar el límite de tiempo de espera de destino. De esta forma, no se añade impacto a otros entornos.

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

  1. Añade 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 los entornos de uno en uno. Actualiza el gráfico apigee-env de cada entorno que quieras actualizar:

    Prueba de funcionamiento:

    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 y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma que ENV_NAME. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos, como dev-env-release y dev-envgroup-release. Para obtener más información sobre las versiones de Helm, consulta el artículo Tres conceptos importantes class="external" de la documentación de Helm.
    • ENV_NAME es el nombre del entorno que vas a actualizar.
    • OVERRIDES_FILE es el archivo overrides.yaml editado.
  3. Actualiza el gráfico:
    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace APIGEE_NAMESPACE \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    
  4. Comprueba que está en funcionamiento consultando el estado del entorno correspondiente:

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

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

Los cambios que hagas en la estrofa runtime modificarán el límite de tiempo de espera de destino de todos los entornos de tu instalación. Puede anular estos ajustes en entornos concretos con las propiedades runtime.

  1. Añade 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 de cada entorno de tu instalación:

    Prueba de funcionamiento:

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

    Actualiza el gráfico:

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