Configura el tiempo de espera de E/S en Message Processor

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

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

El tiempo de espera de E/S en Message Processor representa el tiempo durante el cual este procesador espera recibir una respuesta del servidor de backend o que el socket esté listo para escribir una solicitud al servidor de backend antes de agotar el tiempo de espera.

El valor predeterminado del tiempo de espera de E/S del procesador de mensajes es 55 seconds. Este tiempo de espera se aplica a los servidores de backend establecidos en la configuración del extremo de destino y en la política ServiceReferencia del proxy de API.

El tiempo de espera de E/S para Message Processor se puede aumentar o disminuir con respecto al valor predeterminado de 55 seconds según tus necesidades. Se puede configurar en los siguientes lugares:

  • En el proxy de API:
    • Extremo de destino
    • Política ServiceCallout
  • En el procesador de mensajes

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

Nombre de propiedad Location Descripción
io.timeout.millis

Proxy de API:

  • Extremo de destino
  • Política de Texto destacado del servicio

Este es el tiempo máximo durante el cual Message Processor hace lo siguiente:

  • Espera recibir una respuesta del servidor de backend después de establecer la conexión y enviar la solicitud al servidor de backend.
  • Espera a que el socket esté listo para que Message Processor envíe la solicitud al servidor de backend.

Si no hay respuesta del servidor de backend dentro de este tiempo de espera, se agota el tiempo de espera de Message Processor.

De forma predeterminada, esta propiedad toma el valor establecido para la propiedad HTTPTransport.io.timeout.millis en Message Processor. El valor predeterminado es 55 seconds.

Si esta propiedad se modifica con un valor de tiempo de espera nuevo para un proxy de API específico, solo se verá afectado ese proxy.

HTTPTransport.io.timeout.millis Procesador de mensajes

Este es el tiempo máximo durante el cual Message Processor hace lo siguiente:

  • Espera recibir una respuesta del servidor de backend después de establecer la conexión y enviar la solicitud al servidor de backend.
  • Espera a que el socket esté listo para que Message Processor envíe la solicitud al servidor de backend.

Si no hay respuesta del servidor de backend dentro de este tiempo de espera, se agota el tiempo de espera de Message Processor.

Esta propiedad se usa para todos los proxies de API que se ejecutan en este Message Processor.

El valor predeterminado de esta propiedad es 55 seconds.

Puedes modificar esta propiedad como se explica en Configura el tiempo de espera de E/S en Message Processor o puedes reemplazar este valor si configuras la propiedad io.timeout.millis en el nivel de proxy de API.

Antes de comenzar

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

Configura el tiempo de espera de E/S en el proxy de API

El tiempo de espera de E/S se puede configurar en los siguientes lugares del proxy de la API:

  • Extremo de destino
  • Política ServiceCallout

Configura el tiempo de espera de E/S en el extremo de destino del proxy de API

En esta sección, se explica cómo configurar el tiempo de espera de E/S en el extremo de destino del proxy de API. El tiempo de espera de E/S se puede configurar a través de la propiedad io.timeout.millis, que representa el valor del tiempo de espera de E/S en milisegundos.

  1. En la IU de Edge, selecciona el proxy de API específico en el que deseas configurar el nuevo valor de tiempo de espera de E/S.
  2. Selecciona el extremo de destino específico que deseas modificar.
  3. Agrega la propiedad io.timeout.millis con un valor apropiado en el elemento <HTTPTargetConnection> de la configuración TargetEndpoint.
  4. Por ejemplo, para cambiar el tiempo de espera de E/S a 120 segundos, agrega el siguiente bloque de código:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Como la propiedad io.timeout.millis se encuentra en milisegundos, el valor de 120 segundos es 120000.

    En los siguientes ejemplos, se muestra cómo configurar el tiempo de espera de E/S en la configuración del extremo de destino del proxy de API:

    Ejemplo de configuración de extremo de destino con URL para el servidor de backend

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <URL>https://mocktarget.apigee.net/json</URL>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
      </HTTPTargetConnection>
    </TargetEndpoint>
    

    Ejemplo de configuración de extremo de destino con un servidor de destino

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
    
  5. Guarda los cambios realizados en tu proxy de API.

Configuración del tiempo de espera de E/S en la política ServiceReferencia del proxy de API

En esta sección, se explica cómo configurar el tiempo de espera de E/S en la política ServiceReferencia de tu proxy de API. El tiempo de espera de E/S se puede configurar mediante el elemento <Timeout> o la propiedad io.timeout.millis. El elemento <Timeout> y la propiedad io.timeout.millis representan los valores de tiempo de espera de E/S en milisegundos.

Puede configurar el tiempo de espera de E/S en la política ServiceReferencia mediante uno de los siguientes métodos:

  • <Timeout>.
  • io.timeout.millis.

Elemento de tiempo de espera

Para configurar el tiempo de espera de E/S en la política ServiceReferencia mediante el elemento <Timeout>, haz lo siguiente:

  1. En la IU de Edge, selecciona el proxy de API específico en el que deseas configurar el nuevo valor de tiempo de espera de E/S para la política ServiceReferencia.
  2. Selecciona la política específica de ServiceFeatured que quieres modificar.
  3. Agrega el elemento <Timeout> con un valor apropiado en la configuración <ServiceCallout>.

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

        <Timeout>120000</Timeout>
    

    Como el elemento <Timeout> se expresa en milisegundos, el valor de 120 segundos es 120000.

    En el siguiente ejemplo, se muestra cómo configurar el tiempo de espera de E/S en la política ServiceFeatured con el elemento <Timeout>:

    Ejemplo de configuración de la política ServiceReferencia con una URL para el servidor de backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Guarda los cambios realizados en tu proxy de API.

Propiedad io.timeout.millis

Para configurar el tiempo de espera de E/S en la política ServiceReferencia mediante la propiedad io.timeout.millis, haz lo siguiente:

  1. En la IU de Edge, selecciona el proxy de API específico en el que deseas configurar el nuevo valor de tiempo de espera de E/S para la política ServiceReferencia.
  2. Selecciona la política específica de ServiceFeatured que quieres modificar.
  3. Agrega la propiedad io.timeout.millis con un valor adecuado en el elemento <HTTPTargetConnection> en la configuración de TargetEndpoint.

    Por ejemplo, para cambiar el tiempo de espera de E/S a 120 segundos, agrega el siguiente bloque de código:

        <Properties>
          <Property name="io.timeout.millis">120000</Property>
        </Properties>
    

    Como la propiedad io.timeout.millis se encuentra en milisegundos, el valor de 120 segundos es 120000.

    En los siguientes ejemplos, se muestra cómo configurar el tiempo de espera de E/S en la configuración del extremo de destino del proxy de API:

    Ejemplo de configuración de la política ServiceReferencia con una URL para el servidor de backend

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <HTTPTargetConnection>
          <Properties>
            <Property name="io.timeout.millis">120000</Property>
          </Properties>
          <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
    

    Ejemplo de configuración de la política ServiceReferencia con un servidor de destino

    <ServiceCallout enabled="true" name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Response>calloutResponse</Response>
        <HTTPTargetConnection>
            <LoadBalancer>
                <Server name="target1" />
                <Server name="target2" />
            </LoadBalancer>
            <Properties>
                <Property name="io.timeout.millis">120000</Property>
            </Properties>
            <Path>/test</Path>
        </HTTPTargetConnection>
    </ServiceCallout>
    
  4. Guarda los cambios realizados en tu proxy de API.

Configura el tiempo de espera de E/S en Message Processor

En esta sección, se explica cómo configurar el tiempo de espera de E/S en los procesadores de mensajes. El tiempo de espera de E/S se puede configurar mediante la propiedad HTTPTransport.io.timeout.millis, que representa el valor de tiempo de espera de E/S en milisegundos en el componente Message Processor mediante el token según la sintaxis descrita en Cómo configurar Edge.

Para configurar el tiempo de espera de E/S en Message Processor, haz lo siguiente:

  1. En la máquina de Message Processor, abre el siguiente archivo en un editor. Si aún no existe, créalo.
    /opt/apigee/customer/application/message-processor.properties
    

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

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Agrega una línea en el siguiente formato al archivo de propiedades y reemplaza un valor por TIME_IN_MILLISECONDS:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
    

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

    conf_http_HTTPTransport.io.timeout.millis=120000
    
  3. Guarda los cambios.
  4. Asegúrate de que el archivo de propiedades sea propiedad del usuario de apigee, como se muestra a continuación:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Reinicia Message Processor como se muestra a continuación:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Si tienes más de un Message Processor, repite los pasos anteriores en todos ellos.

Verifica el tiempo de espera de E/S en Message Processor

En esta sección, se explica cómo verificar que el tiempo de espera de E/S se haya modificado de forma correcta en Message Processor.

Aunque uses el token conf_http_HTTPTransport.io.timeout.millis para establecer el tiempo de espera de E/S en Message Processor, debes verificar si se configuró la propiedad real HTTPTransport.io.timeout.millis con el valor nuevo.

  1. En la máquina de Message Processor, busca la propiedad HTTPTransport.io.timeout.millis en el directorio /opt/apigee/edge-message-processor/conf y verifica si se configuró con el valor nuevo, como se muestra a continuación:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
    
  2. Si el nuevo valor de tiempo de espera de E/S se configura correctamente en Message Processor, el comando anterior mostrará el valor nuevo en el archivo http.properties.
  3. El resultado de muestra del comando anterior después de configurar el tiempo de espera de E/S en 120 segundos es el siguiente:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
    

    En el resultado de ejemplo anterior, observa que la propiedad HTTPTransport.io.timeout.millis se estableció con el valor nuevo 120000 en http.properties. Esto indica que el tiempo de espera de E/S se configuró correctamente en 120 segundos en Message Processor.

  4. Si aún ves el valor anterior de la propiedad HTTPTransport.io.timeout.millis, verifica si seguiste todos los pasos descritos en Configura el tiempo de espera de E/S en Message Processor de manera correcta. Si omitiste algún paso, repite todos los pasos de nuevo de forma correcta.
  5. Si aún no puedes modificar el tiempo de espera de E/S, comunícate con el equipo de asistencia de Apigee Edge.

Pasos siguientes

Obtén más información sobre la configuración del tiempo de espera de E/S en routers