Настройка времени ожидания ввода-вывода на процессорах сообщений

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

В этом документе рассказывается, как настроить время ожидания ввода-вывода для процессоров сообщений Apigee Edge.

Тайм-аут ввода-вывода на Message Processor – это время, в течение которого Message Processor ожидает ответа от бэкенд-сервера или готовности сокета для записи запроса на бэкенд-сервер, прежде чем превысит время ожидания.

Значение по умолчанию для времени ожидания ввода-вывода Message Processor – 55 seconds. Этот период ожидания применяется к серверным частям, настроенным в конфигурации целевой конечной точки и в правиле ServiceCallout прокси API.

Время ожидания ввода-вывода для процессоров сообщений можно увеличить или уменьшить по сравнению со значением по умолчанию (55 seconds). Его можно настроить в следующих местах:

  • В прокси-сервере API
    • Целевая конечная точка
    • Правила ServiceCallout
  • На процессоре сообщений

Следующие свойства управляют тайм-аутом ввода-вывода в процессорах сообщений:

Название ресурса Местоположение Описание
io.timeout.millis

Прокси-сервер API:

  • Целевая конечная точка
  • Правила в отношении уточнений услуг

Это максимальное время, в течение которого Message Processor выполняет следующие действия:

  • Ожидает ответа от внутреннего сервера после установления подключения и отправки запроса на внутренний сервер ИЛИ
  • Ожидает, пока сокет будет готов к тому, чтобы Message Processor отправил запрос на бэкенд-сервер.

Если в течение этого времени от бэкенд-сервера не поступит ответа, Message Processor превысит время ожидания.

По умолчанию это свойство принимает значение, заданное для свойства HTTPTransport.io.timeout.millis в обработчике сообщений. Значение по умолчанию – 55 seconds.

Если это свойство изменено с новым значением времени ожидания для определенного прокси-сервера API, то это повлияет только на этот прокси-сервер API.

HTTPTransport.io.timeout.millis Message Processor

Это максимальное время, в течение которого Message Processor выполняет следующие действия:

  • Ожидает ответа от внутреннего сервера после установления подключения и отправки запроса на внутренний сервер ИЛИ
  • Ожидает, пока сокет будет готов к тому, чтобы Message Processor отправил запрос на бэкенд-сервер.

Если в течение этого времени от бэкенд-сервера не поступит ответа, Message Processor превысит время ожидания.

Это свойство используется для всех прокси API, запущенных на этом Message Processor.

Значение по умолчанию – 55 seconds.

Вы можете изменить это свойство, как описано в разделе Настройка времени ожидания ввода-вывода в процессорах сообщений, или переопределить его значение, задав свойство io.timeout.millis на уровне прокси API.

Подготовка

Прежде чем выполнять описанные в этом документе действия, убедитесь, что вы понимаете следующие темы:

Как настроить тайм-аут ввода-вывода в прокси-сервере API

Тайм-аут ввода-вывода можно настроить в следующих местах прокси API:

  • Целевая конечная точка
  • Правила ServiceCallout

Как настроить тайм-аут ввода-вывода в целевой конечной точке прокси API

В этом разделе рассказывается, как настроить время ожидания ввода-вывода в целевой конечной точке прокси-сервера API. Время ожидания ввода-вывода можно настроить с помощью свойства io.timeout.millis, которое представляет значение времени ожидания ввода-вывода в миллисекундах.

  1. В интерфейсе Edge выберите нужный прокси-сервер API, в котором вы хотите настроить новое значение времени ожидания ввода-вывода.
  2. Выберите конечную точку, которую хотите изменить.
  3. Добавьте свойство io.timeout.millis с подходящим значением в элемент <HTTPTargetConnection> конфигурации TargetEndpoint.
  4. Например, чтобы изменить время ожидания ввода-вывода на 120 секунд, добавьте следующий блок кода:

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

    Поскольку свойство io.timeout.millis задается в миллисекундах, значение для 120 секунд будет равно 120000.

    В примерах ниже показано, как настроить время ожидания ввода-вывода в конфигурации целевой конечной точки прокси-сервера API:

    Пример конфигурации целевой конечной точки с использованием URL для внутреннего сервера

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

    Пример конфигурации целевой конечной точки с использованием целевого сервера

    <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. Сохраните изменения, внесенные в прокси-сервер API.

Настройка времени ожидания ввода-вывода в правиле ServiceCallout прокси-сервера API

В этом разделе рассказывается, как настроить время ожидания ввода-вывода в правиле ServiceCallout прокси-сервера API. Время ожидания ввода-вывода можно настроить с помощью элемента <Timeout> или свойства io.timeout.millis. Элемент <Timeout> и свойство io.timeout.millis представляют значения времени ожидания ввода-вывода в миллисекундах.

Вы можете настроить время ожидания ввода-вывода в правиле ServiceCallout одним из следующих способов:

  • элемент <Timeout>.
  • io.timeout.millis.

Элемент "Время ожидания"

Чтобы настроить время ожидания I/O в правиле ServiceCallout с помощью элемента <Timeout>, выполните следующие действия:

  1. В интерфейсе Edge выберите прокси-сервер API, в котором хотите настроить новое значение времени ожидания ввода-вывода для правила ServiceCallout.
  2. Выберите нужное правило ServiceCallout.
  3. Добавьте элемент <Timeout> с подходящим значением в конфигурацию <ServiceCallout>.

    Например, чтобы изменить время ожидания ввода-вывода на 120 секунд, добавьте следующую строку кода:

        <Timeout>120000</Timeout>

    Поскольку элемент <Timeout> указывается в миллисекундах, значение для 120 секунд будет 120000.

    В следующем примере показано, как настроить тайм-аут ввода-вывода в правиле ServiceCallout с помощью элемента <Timeout>:

    Пример конфигурации правила ServiceCallout с использованием URL для внутреннего сервера

    <ServiceCallout name="Service-Callout-1">
        <DisplayName>ServiceCallout-1</DisplayName>
        <Timeout>120000</Timeout>
        <HTTPTargetConnection>
            <Properties/>
            <URL>https://mocktarget.apigee.net/json</URL>
        </HTTPTargetConnection>
    </ServiceCallout>
  4. Сохраните изменения, внесенные в прокси-сервер API.

Свойство io.timeout.millis

Чтобы настроить время ожидания ввода-вывода в правиле ServiceCallout с помощью свойства io.timeout.millis, выполните следующие действия:

  1. В интерфейсе Edge выберите прокси-сервер API, в котором хотите настроить новое значение времени ожидания ввода-вывода для правила ServiceCallout.
  2. Выберите нужное правило ServiceCallout.
  3. Добавьте свойство io.timeout.millis с подходящим значением под элементом <HTTPTargetConnection> в конфигурации TargetEndpoint.

    Например, чтобы изменить время ожидания ввода-вывода на 120 секунд, добавьте следующий блок кода:

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

    Поскольку свойство io.timeout.millis задается в миллисекундах, значение для 120 секунд будет равно 120000.

    В примерах ниже показано, как настроить время ожидания ввода-вывода в конфигурации целевой конечной точки прокси-сервера API:

    Пример конфигурации правила ServiceCallout с использованием URL для внутреннего сервера

    <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>

    Пример конфигурации правила ServiceCallout с использованием целевого сервера

    <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. Сохраните изменения, внесенные в прокси-сервер API.

Настройка времени ожидания ввода-вывода на процессорах сообщений

В этом разделе рассказывается, как настроить тайм-аут ввода-вывода на процессорах сообщений. Время ожидания ввода-вывода можно настроить с помощью свойства HTTPTransport.io.timeout.millis, которое представляет значение времени ожидания ввода-вывода в миллисекундах для компонента Message Processor, используя токен в соответствии с синтаксисом, описанным в статье Как настроить Edge.

Чтобы настроить тайм-аут ввода-вывода на процессорах сообщений, выполните следующие действия:

  1. На компьютере Message Processor откройте в редакторе следующий файл: Если его ещё нет, создайте его.
    /opt/apigee/customer/application/message-processor.properties

    Например, чтобы открыть файл с помощью vi, введите следующую команду:

    vi /opt/apigee/customer/application/message-processor.properties
  2. Добавьте в файл свойств строку в следующем формате, заменив TIME_IN_MILLISECONDS на нужное значение:
    conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS

    Например, чтобы изменить время ожидания ввода-вывода в процессоре сообщений на 120 секунд, добавьте следующую строку:

    conf_http_HTTPTransport.io.timeout.millis=120000
  3. Сохраните изменения.
  4. Убедитесь, что файл свойств принадлежит пользователю apigee, как показано ниже.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. Перезапустите Message Processor, как показано ниже.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Если у вас несколько Message Processor, повторите описанные выше действия для каждого из них.

Проверка времени ожидания ввода-вывода на процессорах сообщений

В этом разделе рассказывается, как проверить, что время ожидания ввода-вывода было успешно изменено в процессорах сообщений.

Даже если вы используете токен conf_http_HTTPTransport.io.timeout.millis, чтобы задать время ожидания ввода-вывода в Message Processor, вам нужно проверить, задано ли для свойства HTTPTransport.io.timeout.millis новое значение.

  1. На компьютере Message Processor найдите свойство HTTPTransport.io.timeout.millis в каталоге /opt/apigee/edge-message-processor/conf и проверьте, задано ли для него новое значение, как показано ниже:
    grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
  2. Если новое значение времени ожидания I/O успешно задано для Message Processor, то в файле http.properties будет указано новое значение.
  3. Пример результата выполнения команды выше после настройки времени ожидания ввода-вывода на 120 секунд:

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

    В приведенном выше примере выходных данных обратите внимание, что для свойства HTTPTransport.io.timeout.millis задано новое значение 120000 в http.properties. Это означает, что на процессоре сообщений успешно настроен тайм-аут ввода-вывода в 120 секунд.

  4. Если вы по-прежнему видите старое значение для свойства HTTPTransport.io.timeout.millis, убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка времени ожидания ввода-вывода в процессорах сообщений. Если вы пропустили какой-либо шаг, повторите все действия заново.
  5. Если вам по-прежнему не удается изменить время ожидания ввода-вывода, обратитесь в службу поддержки Apigee Edge.

Что дальше?

Подробнее о настройке времени ожидания ввода-вывода на маршрутизаторах…