Configura el router para que reintente las conexiones a un procesador de mensajes

Edge para nube privada v. 4.17.05

Configurar la respuesta del router cuando un procesador de mensajes no está disponible durante una verificación de estado

El router realiza una verificación de estado al Message Processor cada cinco segundos para determinar si este puede atender las solicitudes. Si un Message Processor deja de funcionar, el router reenvía automáticamente las solicitudes a otro Message Processor.

Puedes configurar la propiedad conf_load_balancing_load.balancing.driver.nginx.server.retry en el router a fin de configurar cómo reacciona el router cuando el procesador de mensajes deja de funcionar. Esa propiedad toma un conjunto de valores delimitados por espacios que pueden incluir lo siguiente:

  • off: Inhabilita el reintento; el router muestra un código de falla cuando se envía una solicitud.
  • http_599: Si el router recibe una respuesta HTTP 599 del procesador de mensajes, este reenvía la solicitud al siguiente procesador de mensajes (predeterminado).

    HTTP 599 es un código de respuesta especial que genera un Message Processor cuando se cierra. El procesador de mensajes intenta completar todas las solicitudes existentes, pero responde con HTTP 599 para indicarle al router que vuelva a intentar la solicitud en el siguiente procesador de mensajes.
  • error: Si se produjo un error cuando se establecía una conexión con Message Processor, se le pasaba una solicitud o se leía su encabezado de respuesta, el router reenvía la solicitud al siguiente Message Processor.
  • timeout: Si se agota el tiempo de espera mientras se establece una conexión con Message Processor, se le pasa una solicitud o se lee su encabezado de respuesta, el router reenvía la solicitud al siguiente Message Processor.
  • invalid_header: Si Message Processor mostró una respuesta vacía o no válida, el router reenvía la solicitud al siguiente Message Processor.
  • http_XXX: Si Message Processor mostró una respuesta con el código HTTP XXX, el router reenvía la solicitud al siguiente Message Processor.

Para configurar el router, haz lo siguiente:

  1. Edita el archivo /opt/apigee/customer/application/router.properties (si el archivo no existe, créalo).
  2. Agrega la propiedad conf_load_balancing_load.balancing.driver.nginx.server.retry como se muestra a continuación:
    conf_load_balancing_load.balancing.driver.nginx.server.retry=http_599 error
  3. Asegúrate de que el archivo de propiedades sea propiedad del usuario de “apigee”:
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Reinicia el router:
    > /opt/apigee/apigee-service/bin/apigee-service perimetral-router reiniciación

Configuración del tiempo de espera del router cuando se accede a Message Processor como parte de una solicitud de proxy de API

El router perimetral tiene un tiempo de espera predeterminado de 57 segundos cuando intenta acceder a un procesador de mensajes como parte del control de una solicitud a través de un proxy de API. Cuando se agote el tiempo de espera, el Router intentará conectarse a otro Message Processor, si hay uno disponible. De lo contrario, se mostrará un error.

Puedes usar dos propiedades para controlar este tiempo de espera:

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout especifica el tiempo de espera, en segundos, para un solo procesador de mensajes. El valor predeterminado es 57 segundos.
  • conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout especifica el tiempo de espera total para todos los procesadores de mensajes, en segundos, cuando tu instalación de Edge tenga varios procesadores de mensajes. Tiene un valor predeterminado del valor actual de conf_load_balancing_load.balancing.driver.proxy.read.timeout, o 57 segundos.

Para configurar el router, haz lo siguiente:

  1. Edita el archivo /opt/apigee/customer/application/router.properties (si el archivo no existe, créalo).
  2. Configura las propiedades como se muestra a continuación:
    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout=240
  3. Asegúrate de que el archivo de propiedades sea propiedad del usuario de “apigee”:
    > chown apigee:apigee /opt/apigee/customer/application/router.properties
  4. Reinicia el router:
    > /opt/apigee/apigee-service/bin/apigee-service perimetral-router reiniciación