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

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Las solicitudes a la API que realizan las aplicaciones cliente fluyen a través de varios componentes en Apigee Edge antes de llegar 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, este último se agota y responde con errores 504 Gateway Timeout.

Mientras configuras el tiempo de espera, los valores deben configurarse en cada uno de los componentes con el mayor cuidado. De lo contrario, puede generar 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: Siempre usa el tiempo de espera más alto en el primer componente del flujo de solicitudes a la API que es la aplicación cliente en Apigee Edge.
  • Último componente: Siempre usa el tiempo de espera más bajo en el último componente del flujo de solicitudes 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 o 3 segundos en el valor de tiempo de espera configurado en cada componente entre el primer componente y el último componente 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 afecte solo 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.

  • Message Processor: Siempre es una buena práctica configurar (modificar) el valor de tiempo de espera de E/S para un proxy de API específico en lugar de configurarlo en el Message Processor. Esto garantiza que el nuevo valor de tiempo de espera afecte solo al proxy de API específico y no a todos los proxies de API que entrega el Message Processor.

    Configura (modifica) el tiempo de espera de E/S en el Message Processor 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 Message Processor.

Situaciones de ejemplo

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

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

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 muestra de Apigee sin componentes intermedios

Flujo que comienza en el cliente, va al router, luego al Message Processor y, por último, 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 establecer 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, luego en el Message Processor y, por último, en el servidor de backend.

    En el siguiente ejemplo, se muestran los valores de tiempo de espera establecidos en los distintos componentes según las instrucciones anteriores para evitar problemas:

    Configura el tiempo de espera en el cliente en 60 segundos, luego en el router en 57 segundos, luego en el Message Processor en 55 segundos y, por último, en el servidor de backend en 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 muestra de Apigee 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, va al componente intermedio 1, luego al router, después al Message Processor, luego 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 componentes, 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 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, incluidos los componentes intermedios, en el siguiente orden:

    Configura el tiempo de espera en el cliente, luego en el componente intermedio 1, luego en el router, luego en el Message Processor, luego en el componente intermedio 2 y, por último, en el servidor de backend.

    En el siguiente ejemplo, se muestran los valores de tiempo de espera establecidos en los distintos componentes según las instrucciones anteriores para evitar problemas:

    Configura el tiempo de espera en el cliente en 63 segundos, luego el componente intermedio 1 en 60 segundos, luego el router en 57 segundos, luego el Message Processor en 55 segundos, luego el componente intermedio 2 en 52 segundos y, por último, el servidor de backend en 59 segundos.