Configura el tiempo de espera de E/S en los routers

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

En este documento, se explica cómo configurar el tiempo de espera de E/S en los routers de Apigee Edge.

El tiempo de espera de E/S del router representa el tiempo que este espera para recibir una respuesta del Procesador de mensajes, después de establecer la conexión y enviar la solicitud al Message Processor. El valor predeterminado del tiempo de espera de E/S en el router es de 57 segundos.

El tiempo de espera de E/S para los routers se puede aumentar o disminuir del valor predeterminado de 57 segundos. según tus necesidades. Se puede configurar de las siguientes maneras:

  • En un host virtual
  • En el router

Las siguientes propiedades controlan el tiempo de espera de E/S en los routers:

Nombre de la propiedad Ubicación Descripción
proxy_read_timeout Host virtual

Especifica el tiempo máximo que el router espera para recibir una respuesta del Message Processor, después de establecer la conexión y enviar la solicitud al Message Processor.

Si no hay respuesta de Message Processor dentro de este tiempo de espera, el Se agota el tiempo de espera del router.

De forma predeterminada, esta propiedad toma el valor establecido para el La propiedad conf_load_balancing_load.balancing.driver.proxy.read.timeout en el router. El el valor predeterminado es 57 segundos.

Si esta propiedad se modifica con un nuevo valor de tiempo de espera para un host virtual específico, entonces solo se ven afectados los proxies de API que usan ese host virtual específico.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Router

Especifica el tiempo máximo que el router espera para recibir una respuesta del Message Processor, después de establecer la conexión y enviar la solicitud al Message Processor.

Si no hay respuesta de Message Processor dentro de este tiempo de espera, el Se agota el tiempo de espera del router.

Esta propiedad se usa para todos los hosts virtuales de este router.

El valor predeterminado de esta propiedad es 57 segundos.

Puedes modificar esta propiedad como se explica en Configura el tiempo de espera de E/S en los routers a continuación. También puedes reemplazar este valor estableciendo la propiedad proxy_read_timeout en el nivel del host virtual.

Puedes establecer el intervalo de tiempo para esta propiedad en un valor que no sea segundos con la opción siguiente notación:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout Router

Especifica el tiempo total que el router espera para recibir una respuesta de todas las Los procesadores, después de establecer la conexión y enviar la solicitud a cada Mensaje Procesador.

Esto es aplicable cuando la instalación de Edge tiene varios procesadores de mensajes y se habilita el reintento cuando se producen errores. Tiene un valor de una de las siguientes opciones:

  • El valor actual de conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • El valor predeterminado de 57 segundos

Al igual que con el conf_load_balancing_load.balancing.driver.proxy.read.timeout , puedes especificar intervalos de tiempo distintos del predeterminado (segundos).

Antes de comenzar

Antes de seguir los pasos de este documento, asegúrate de comprender los siguientes temas:

Cómo configurar el tiempo de espera de E/S en el host virtual

En esta sección, se explica cómo configurar el tiempo de espera de E/S en el host virtual asociado a un organización y entorno. El tiempo de espera de E/S se puede configurar en el host virtual a través del la propiedad proxy_read_timeout, que representa el valor de tiempo de espera de E/S en segundos.

Puedes configurar el host virtual con uno de los siguientes métodos:

  • IU de Edge
  • API de Edge

IU de Edge

Para configurar el host virtual con la IU de Edge, haz lo siguiente:

  1. Accede a la IU de Edge.
  2. Navega a Administrador > Hosts virtuales.
  3. Selecciona un Entorno específico en el que quieras realizar este cambio.
  4. Selecciona el host virtual específico para el que deseas configurar el nuevo host. Valor de tiempo de espera de E/S.
  5. En Properties, actualiza el valor Proxy Read Timeout en segundos.

    Por ejemplo, si deseas cambiar el tiempo de espera a 120 segundos, escribe 120 como se muestra en la siguiente imagen:

    Valor de tiempo de espera de lectura del proxy de 120

  6. Guarda el cambio.

API de Edge

Para configurar el host virtual con la API de Edge, haz lo siguiente:

  1. Obtén la configuración actual del host virtual mediante la Obtén la API de host virtual como se muestra a continuación:

    Usuario de la nube pública

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Usuario de la nube privada

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Aquí:

    {organization-name} es el nombre de la organización.

    {environment-name} es el nombre del entorno.

    {virtualhost-name} es el nombre del host virtual.

    Ejemplo de configuración de virtualhost

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
    
  2. Agrega la propiedad proxy_read_timeout a la configuración del host virtual existente. Carga útil de JSON en properties con el valor en segundos.

    Por ejemplo, para cambiar el tiempo de espera de E/S a 120 segundos, agrega properties. bloque de código como se muestra a continuación:

    Ejemplo de configuración de host virtual actualizada

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. Guarda la configuración actualizada del host virtual en un archivo. Por ejemplo, virtualhost-payload.json.
  4. Actualiza la configuración de virtualhost con el cambio a través de Actualiza una API de host virtual de la siguiente manera:

    Usuario de la nube pública

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Usuario de la nube privada

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    Aquí:

    {organization-name} es el nombre de la organización.

    {environment-name} es el nombre del entorno.

    {virtualhost-name} es el nombre del host virtual.

Cómo verificar el tiempo de espera de E/S en hosts virtuales

En esta sección, se explica cómo comprobar que el tiempo de espera de E/S se haya modificado correctamente en el host virtual con la API de Edge.

  1. Ejecuta el Obtén la API de host virtual para obtener la configuración de virtualhost como se muestra a continuación:

    Usuario de la nube pública

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Usuario de la nube privada

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Aquí:

    {organization-name} es el nombre de la organización.

    {environment-name} es el nombre del entorno.

    {virtualhost-name} es el nombre del host virtual.

  2. Verifica que la propiedad proxy_read_timeout se haya configurado con el valor nuevo.

    Ejemplo de configuración de host virtual actualizada

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    En el ejemplo anterior, ten en cuenta que proxy_read_timeout se configuró con el nuevo valor de 120 segundos.

  3. Si sigues viendo el valor anterior de proxy_read_timeout,, verifica que Siguió correctamente todos los pasos descritos en Cómo configurar el tiempo de espera de E/S en un host virtual correctamente. Si omitiste algún paso, vuelve a repetirlo correctamente.
  4. Si aún no puedes modificar el tiempo de espera de E/S, comunícate con el equipo de asistencia de Apigee Edge.

Configura el tiempo de espera de E/S en los routers

En esta sección, se explica cómo configurar el tiempo de espera de E/S en los routers. El tiempo de espera de E/S puede ser configurada a través de la propiedad Router conf_load_balancing_load.balancing.driver.proxy.read.timeout, que representa el valor del tiempo de espera de E/S en segundos.

Para configurar el tiempo de espera de E/S en los routers, haz lo siguiente:

  1. En la máquina del router, abre el siguiente archivo en un editor. Si aún no existe, créalo.
    /opt/apigee/customer/application/router.properties
    

    Por ejemplo, para abrir el archivo con vi, ingresa el siguiente comando:

    vi /opt/apigee/customer/application/router.properties
    
  2. Agrega una línea con el siguiente formato al archivo properties y reemplaza una Valor para time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

    Por ejemplo, para cambiar el tiempo de espera de E/S del router a 120 segundos, agrega la siguiente línea:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

    También puedes modificar el tiempo de espera de E/S en minutos. Por ejemplo, para cambiar el tiempo de espera a dos minutos, agrega la siguiente línea:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. Guarda los cambios.
  5. Asegúrate de que este archivo de propiedades sea propiedad del usuario de apigee, como se muestra a continuación:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. Reinicia el router como se muestra a continuación:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Si tienes más de un router, repite los pasos anteriores en todos ellos.

Cómo verificar el tiempo de espera de E/S en los routers

En esta sección, se explica cómo comprobar que el tiempo de espera de E/S se haya modificado correctamente en el Routers.

Aunque uses el token conf_load_balancing_load.balancing.driver.proxy.read.timeout para configurar el tiempo de espera de E/S en el router, debes verificar si la propiedad real proxy_read_timeout tiene con el valor nuevo.

  1. Busca la propiedad proxy_read_timeout en /opt/nginx/conf.d y verifica si se configuró con el elemento nuevo valor de la siguiente manera:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Si el nuevo valor de tiempo de espera de E/S se configuró correctamente en el router, entonces el comando anterior muestra el valor nuevo en todos los archivos de configuración de host virtual.

    El siguiente es el resultado de muestra del comando grep anterior cuando la El tiempo de espera de E/S es de 120 segundos:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    En el resultado de ejemplo anterior, observa que la propiedad proxy_read_timeout se estableció con el nuevo valor 120 en 0-default.conf, que es el de Terraform para el host virtual predeterminado. Esto indica que el tiempo de espera de E/S se configuró correctamente en 120 segundos en el router.

  3. Si sigues viendo el valor anterior de la propiedad proxy_read_timeout, verifica que hayas seguido todos los pasos descritos en Configura el tiempo de espera de E/S en los routers de forma correcta. Si tienes omitiste algún paso, repite todos los pasos correctamente.
  4. Si aún no puedes modificar el tiempo de espera de E/S, comunícate con el equipo de asistencia de Apigee Edge.

¿Qué sigue?

Obtén información sobre cómo configurar el tiempo de espera de E/S en Message Processor