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

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

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

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

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

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

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

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

Название объекта недвижимости Расположение Описание
keepalive.timeout.millis API-прокси:
  • Целевая конечная точка
  • Политика ServiceCallout

Это максимальное время простоя, в течение которого обработчик сообщений разрешает одному TCP-соединению отправлять и получать несколько HTTP-запросов/ответов, вместо открытия нового соединения для каждой пары запрос/ответ.

По умолчанию это свойство принимает значение, установленное для свойства HTTPClient.keepalive.timeout.millis в обработчике сообщений, где значение по умолчанию составляет 60 секунд.

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

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

Это максимальное время простоя, в течение которого обработчик сообщений разрешает одному TCP-соединению отправлять и получать несколько HTTP-запросов/ответов, вместо открытия нового соединения для каждой пары запрос/ответ.

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

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

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

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

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

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

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

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

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

В этом разделе объясняется, как настроить таймаут "поддержания соединения" в целевой конечной точке вашего API-прокси. Таймаут "поддержания соединения" можно настроить с помощью свойства keepalive.timeout.millis , которое представляет значение таймаута "поддержания соединения" в миллисекундах.

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

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

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>

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

    В следующих примерах показано, как настроить таймаут "keep alive" в конфигурации целевой конечной точки вашего API-прокси:

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

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

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

    <TargetEndpoint name="default">
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
  4. Сохраните изменения, внесенные в ваш API-прокси.

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

В этом разделе объясняется, как настроить таймаут поддержания соединения в политике ServiceCallout вашего API-прокси. Таймаут поддержания соединения можно настроить с помощью свойства the keepalive.timeout.millis , которое представляет значение таймаута поддержания соединения в миллисекундах.

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

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

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

    <Properties>
      <Property name="keepalive.timeout.millis">30000</Property>
    </Properties>

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

    В следующих примерах показано, как настроить таймаут поддержания соединения в политике ServiceCallout вашего API-прокси:

    Пример настройки политики ServiceCallout с использованием URL-адреса для бэкэнд-сервера.

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

    Пример настройки политики ServiceCallout с использованием целевого сервера.

    <ServiceCallout enabled="true" name="Service-Callout-1">
      <DisplayName>Service Callout-1</DisplayName>
      <Response>calloutResponse</Response>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="target1" />
          <Server name="target2" />
        </LoadBalancer>
        <Properties>
          <Property name="keepalive.timeout.millis">30000</Property>
        </Properties>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </ServiceCallout>
  4. Сохраните изменения, внесенные в ваш API-прокси.

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

В этом разделе объясняется, как настроить таймаут "поддержания соединения" в обработчиках сообщений. Таймаут "поддержания соединения" можно настроить с помощью свойства HTTPClient.keepalive.timeout.millis , которое представляет значение таймаута "поддержания соединения" в миллисекундах в компоненте обработчика сообщений. Поскольку это свойство закомментировано в обработчике сообщений, необходимо использовать специальный синтаксис conf/http.properties+HTTPClient.keepalive.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.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS

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

    conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
  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. Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.

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

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

Даже если вы используете специальный синтаксис conf/http.properties+HTTPClient.keepalive.timeout.millis для установки таймаута поддержания соединения в обработчике сообщений, необходимо убедиться, что фактическое свойство HTTPClient.keepalive.timeout.millis было установлено с новым значением.

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

    Пример результата выполнения приведенной выше команды после установки таймаута поддержания соединения на 30 секунд выглядит следующим образом:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPClient.keepalive.timeout.millis=30000

    В приведенном выше примере обратите внимание, что свойство HTTPClient.keepalive.timeout.millis в http.properties получило новое значение 30000 Это указывает на то, что таймаут поддержания соединения успешно настроен на 30 секунд в обработчике сообщений.

  3. Если для свойства HTTPClient.keepalive.timeout.millis по-прежнему отображается старое значение, убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка таймаута keep-alive в обработчиках сообщений» . Если вы пропустили какой-либо шаг, повторите все шаги заново.
  4. Если вам по-прежнему не удается изменить время ожидания соединения (keep alive timeout), обратитесь в службу поддержки Google Cloud Apigee Edge .