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

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

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

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

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

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

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

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

Название объекта недвижимости Расположение Описание
io.timeout.millis

API-прокси:

  • Целевая конечная точка
  • Политика вызова сервисной службы

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

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

Если в течение этого периода ожидания от бэкэнд-сервера не поступает ответа, то обработчик сообщений завершает работу по истечении заданного времени ожидания.

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

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

HTTPTransport.io.timeout.millis Обработчик сообщений

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

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

Если в течение этого периода ожидания от бэкэнд-сервера не поступает ответа, то обработчик сообщений завершает работу по истечении заданного времени ожидания.

Это свойство используется для всех API-прокси, работающих на этом обработчике сообщений.

Значение по умолчанию для этого параметра составляет 55 seconds .

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

Прежде чем начать

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

Настройка таймаута ввода-вывода в API-прокси

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

  • Целевая конечная точка
  • Политика вызова сервисной службы

Настройка таймаута ввода-вывода в целевой конечной точке 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 .

Элемент тайм-аута

Чтобы настроить тайм-аут ввода-вывода в политике 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 , которое представляет значение тайм-аута ввода-вывода в миллисекундах для компонента обработчика сообщений, используя токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .

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

  1. На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
    /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. Перезапустите обработчик сообщений, как показано ниже:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  6. Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.

Проверка таймаута ввода-вывода в обработчиках сообщений.

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

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

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

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

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

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

Что дальше?

Узнайте о настройке тайм-аута ввода-вывода на маршрутизаторах.