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

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

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 Message Processor espera recibir una respuesta del servidor de backend o que el socket esté listo para escribir una solicitud en el servidor de backend antes de que se agote el tiempo de espera.

El valor predeterminado del tiempo de espera de E/S de Message Processor es 55 seconds. Este período de tiempo de espera se aplica a los servidores de backend configurados en la configuración del extremo de destino y en la política ServiceCallout de tu proxy de API.

El tiempo de espera de E/S para Message Processor se puede aumentar o disminuir desde el 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 Message Processor

Las siguientes propiedades controlan el tiempo de espera de E/S en Message Processor:

Nombre de la propiedad Ubicación Descripción
io.timeout.millis

Proxy de API:

  • Extremo de destino
  • Política ServiceCallout

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 O
  • Espera a que el socket esté listo para que Message Processor envíe la solicitud a el servidor de backend.

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

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

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

HTTPTransport.io.timeout.millis Message Processor

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 O
  • Espera a que el socket esté listo para que Message Processor envíe la solicitud a el servidor de backend.

Si no hay respuesta del servidor de backend dentro de este período de 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 del proxy de API.

Antes de comenzar

Antes de usar 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 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 de tu 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 de 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 adecuado en el <HTTPTargetConnection> elemento en la TargetEndpoint configuración.
  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>

    Dado que la propiedad io.timeout.millis está 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 de tu proxy de API:

    Ejemplo de configuración del extremo de destino con la URL del 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 del extremo de destino con el 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.

Configura el tiempo de espera de E/S en la política ServiceCallout del proxy de API

En esta sección, se explica cómo configurar el tiempo de espera de E/S en la política ServiceCallout de tu proxy de API. El tiempo de espera de E/S se puede configurar a través del elemento <Timeout> o la propiedad io.timeout.millis. Tanto el elemento <Timeout> como la propiedad io.timeout.millis representan los valores de tiempo de espera de E/S en milisegundos.

Puedes configurar el tiempo de espera de E/S en la política ServiceCallout con uno de los siguientes métodos:

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

Elemento de tiempo de espera

Para configurar el tiempo de espera de E/S en la política ServiceCallout con 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 ServiceCallout.
  2. Selecciona la política ServiceCallout específica que deseas modificar.
  3. Agrega el elemento <Timeout> con un valor adecuado en la <ServiceCallout> configuración.

    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>

    Dado que el elemento <Timeout> está 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 ServiceCallout con el elemento <Timeout>:

    Ejemplo de configuración de la política ServiceCallout con la URL del 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 ServiceCallout con la io.timeout.millis propiedad, 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 ServiceCallout.
  2. Selecciona la política ServiceCallout específica que deseas modificar.
  3. Agrega la propiedad io.timeout.millis con un valor adecuado en el <HTTPTargetConnection> elemento 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>

    Dado que la propiedad io.timeout.millis está 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 de tu proxy de API:

    Ejemplo de configuración de la política ServiceCallout con la URL del 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 ServiceCallout con el 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 Message Processor. El tiempo de espera de E/S se puede configurar a través de la propiedad HTTPTransport.io.timeout.millis, que representa el valor de tiempo de espera de E/S en milisegundos en el componente Message Processor, con el token según la sintaxis que se describe 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 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 sustituye 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 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 los Message Processors.

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 correctamente en los Message Processor.

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

  1. En la máquina 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 muestra 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 configuró 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 que hayas seguido correctamente todos los pasos que se describen en Configura el tiempo de espera de E/S en Message Processor. Si omitiste algún paso, repite todos los pasos 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 .

Próximos pasos

Obtén información para configurar el tiempo de espera de E/S en los routers.