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

Estás viendo la documentación de Apigee Edge.
Ve 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 forma oportuna.

Para obtener 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 anterior, este último se agota y responde con errores de tiempo de espera de la puerta de enlace 504.

Mientras configuras el tiempo de espera, los valores se deben configurar en cada uno de los componentes con mucho cuidado. De lo contrario, se pueden generar errores de tiempo de espera de la puerta de enlace 504.

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 de 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 de 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 solicitudes de 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 recomendable configurar (modificar) el valor del tiempo de espera de E/S para un host virtual específico en lugar de hacerlo 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 publica 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 recomendable configurar (modificar) el valor del tiempo de espera de E/S para un proxy de API específico en lugar de hacerlo en 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 Message Processor solo cuando tengas la seguridad 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 debes seguir cuando configures 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.

Ejemplo de configuración de Apigee sin componentes intermedios

Flujo que comienza en el cliente y va al router, luego al procesador de mensajes y, luego, al servidor de backend

Si Apigee Edge está configurado como se muestra en el diagrama anterior, sin componentes intermedios, sigue estas 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 procesador de mensajes y, por último, en el servidor de backend.

    En el siguiente ejemplo, se muestran los valores de tiempo de espera establecidos en los diversos componentes según los lineamientos 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 procesador de mensajes en 55 segundos y, luego, 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 debes seguir cuando configures 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 contenido (CDN), NGINX, etcétera.

Ejemplo de configuración 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 y va al componente intermedio 1, luego al router, luego al procesador de mensajes, luego al componente intermedio 2 y, luego, al servidor de backend

Si Apigee Edge está configurado como se muestra en el diagrama anterior, con uno o más componentes intermedios, sigue estas 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 procesador de mensajes, luego en el componente intermedio 2 y, luego, en el servidor de backend.

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

    Configura el tiempo de espera en el cliente en 63 segundos, luego en el componente intermedio 1 en 60 segundos, luego en el router en 57 segundos, luego en el procesador de mensajes en 55 segundos, luego en el componente intermedio 2 en 52 segundos y, luego, en el servidor de backend en 59 segundos.