Prácticas recomendadas para configurar el tiempo de espera de E/S

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Las solicitudes a la API que realizan las aplicaciones cliente fluyen por varios componentes de Apigee Edge antes de que lleguen a los servicios de backend. La mayoría de las aplicaciones cliente esperan que las respuestas a estas solicitudes se reciban de manera oportuna.

Para lograr respuestas oportunas, los valores de tiempo de espera de E/S se establecen en cada uno de los componentes a través de los cuales fluyen las solicitudes a la API. Si alguno de los componentes del flujo tarda más que el componente anterior, se agota el tiempo de espera del componente anterior y responde con errores de tiempo de espera de la puerta de enlace 504.

Cuando configuras el tiempo de espera, debes configurar los valores en cada uno de los componentes con mucho cuidado. De lo contrario, pueden generarse errores 504 Gateway Timeout.

En este documento, se describen las prácticas recomendadas para configurar el tiempo de espera de E/S en varios componentes a través de los cuales fluyen las solicitudes a la API en Apigee Edge.

Prácticas recomendadas para configurar el tiempo de espera de E/S

Ten en cuenta las siguientes prácticas recomendadas cuando configures el tiempo de espera de E/S:

  • Primer componente: Usa siempre el tiempo de espera más alto en el primer componente del flujo de solicitud a la API, que es la aplicación cliente en Apigee Edge.
  • Último componente: Usa siempre el tiempo de espera más bajo en el último componente del flujo de solicitud a la API, que es el servicio de backend en Apigee Edge.
  • Entre componentes: Asegúrate de que haya una diferencia de al menos 2 a 3 segundos en el valor de tiempo de espera configurado en cada componente entre el primer y el último del flujo.
  • Router: Siempre es una buena práctica configurar (modificar) el valor de tiempo de espera de E/S para un host virtual específico, en lugar de configurarlo en el router. Esto garantiza que el nuevo valor de tiempo de espera solo afecte a los proxies de API que usan el host virtual específico y no a todos los proxies de API que entrega el router.

    Configura (modifica) el tiempo de espera de E/S en el router solo cuando estés absolutamente seguro de que el nuevo valor de tiempo de espera de E/S es obligatorio o aplicable para todos los proxies de API que se ejecutan en el router.

  • Procesador de mensajes: Siempre se recomienda configurar (modificar) el valor de tiempo de espera de E/S para un proxy de API específico, en lugar de configurarlo en el procesador de mensajes. Esto garantiza que el nuevo valor de tiempo de espera solo afecte al proxy de API específico y no a todos los proxies de API que entrega el procesador de mensajes.

    Configura (modifica) el tiempo de espera de E/S en Message Processor solo cuando tengas la certeza absoluta de que el nuevo valor de tiempo de espera de E/S es obligatorio o aplicable para todos los proxies de API que se ejecutan en Message Processor.

Situaciones de ejemplo

Las situaciones de esta sección pueden ayudarte a comprender cómo configurar correctamente los valores de tiempo de espera de E/S.

Situación 1: Solicitudes a Apigee Edge directamente desde aplicaciones cliente

En esta sección, se describen las prácticas recomendadas que se deben seguir cuando se establecen los valores de tiempo de espera en una configuración de Apigee Edge en la que no hay componentes intermedios entre la aplicación cliente y Apigee Edge, y entre Apigee Edge y tu servidor de backend.

Configuración de Apigee de muestra sin componentes intermedios

Flujo que comienza en el cliente y va al router, luego al Message Processor y, luego, al servidor de backend

Si Apigee Edge está configurado como se muestra en el diagrama anterior, sin componentes intermedios, usa las siguientes prácticas recomendadas:

  1. La aplicación cliente es el primer componente del flujo. El valor de tiempo de espera más alto se debe configurar en el cliente.
  2. El servidor de backend es el último componente del flujo. El valor de tiempo de espera más bajo se debe establecer en el servidor de backend.
  3. Configura los valores de tiempo de espera en cada uno de los componentes en el siguiente orden:

    Configura el tiempo de espera en el cliente, luego en el router, en el procesador de mensajes y, luego, en el servidor de backend.

    En el siguiente ejemplo, se muestran los valores de tiempo de espera establecidos en los distintos componentes según los lineamientos proporcionados anteriormente para evitar cualquier problema:

    Configura el tiempo de espera en el cliente a los 60 segundos, el router a los 57 segundos, el procesador de mensajes a los 55 segundos y el servidor de backend a los 52 segundos.

Situación 2: Solicitudes a Apigee Edge desde aplicaciones cliente a través de componentes intermedios

En esta sección, se describen las prácticas recomendadas que se deben seguir cuando se establecen los valores de tiempo de espera en una configuración de Apigee Edge en la que hay uno o más componentes intermedios entre la aplicación cliente y Apigee Edge, y también entre Apigee Edge y tu servidor de backend.

Los componentes intermedios pueden ser un balanceador de cargas, una red de distribución de contenidos (CDN), NGINX, etcétera.

Configuración de Apigee de muestra con un componente intermedio entre el cliente y Apigee Edge y entre Apigee Edge y el servidor de backend

Flujo que comienza en el cliente y va al componente intermedio 1, luego al router, luego al procesador de mensajes y después al componente intermedio 2 y, por último, al servidor de backend

Si Apigee Edge está configurado como se muestra en el diagrama anterior, con uno o más componentes intermedios, usa las siguientes prácticas recomendadas:

  1. La aplicación cliente es el primer componente del flujo. El valor de tiempo de espera más alto se debe establecer en el cliente.
  2. El servidor de backend es el último componente del flujo. El valor timeout más bajo se debe establecer en el servidor de backend.
  3. Configura los valores de tiempo de espera en cada uno de los componentes, incluidos los intermedios, en el siguiente orden:

    Configura el tiempo de espera en el cliente, luego, el componente intermedio 1, el router, el procesador de mensajes, el componente intermedio 2 y el servidor de backend.

    En el siguiente ejemplo, se muestran los valores de tiempo de espera establecidos en los distintos componentes según los lineamientos proporcionados anteriormente para evitar cualquier problema:

    Configura el tiempo de espera en el cliente a los 63 segundos, después el componente intermedio 1 a los 60 segundos, luego el router a los 57 segundos, después Procesador de mensajes a los 55 segundos, luego el componente intermedio 2 a los 52 segundos y el servidor de backend a los 59 segundos.