Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этом документе объясняется, как настроить тайм-аут поддержания соединения для обработчиков сообщений Apigee Edge.
Тайм-аут "поддержания соединения" в обработчике сообщений позволяет одному TCP-соединению отправлять и получать несколько HTTP-запросов/ответов от/к бэкэнд-серверу, вместо того чтобы открывать новое соединение для каждой пары запрос/ответ.
Значение по умолчанию для параметра keep alive timeout в обработчике сообщений составляет 60 секунд. Этот период ожидания применяется к бэкэнд-серверам, настроенным в конфигурации целевой конечной точки и в политике ServiceCallout вашего API-прокси.
Время ожидания соединения для обработчиков сообщений можно увеличить или уменьшить по сравнению со значением по умолчанию в 60 секунд в зависимости от ваших потребностей. Его можно настроить следующими способами:
- В API-прокси
- В целевой конечной точке
- В политике
ServiceCallout
- В процессоре сообщений
Следующие параметры управляют временем ожидания соединения (keep alive) в обработчиках сообщений:
| Название объекта недвижимости | Расположение | Описание |
|---|---|---|
keepalive.timeout.millis | API-прокси:
| Это максимальное время простоя, в течение которого обработчик сообщений разрешает одному TCP-соединению отправлять и получать несколько HTTP-запросов/ответов, вместо открытия нового соединения для каждой пары запрос/ответ. По умолчанию это свойство принимает значение, установленное для свойства Если это свойство изменяется с новым значением таймаута для целевого сервера, используемого в целевой конечной точке, или в политике |
HTTPClient.keepalive.timeout.millis | Обработчик сообщений | Это максимальное время простоя, в течение которого обработчик сообщений разрешает одному TCP-соединению отправлять и получать несколько HTTP-запросов/ответов, вместо открытия нового соединения для каждой пары запрос/ответ. Это свойство используется для всех API-прокси, работающих на этом обработчике сообщений. Значение по умолчанию для этого параметра составляет Вы можете изменить это свойство, как описано в разделе «Настройка таймаута поддержания соединения в обработчиках сообщений» ниже, или переопределить это значение, установив свойство |
Прежде чем начать
Прежде чем приступить к выполнению действий, описанных в этом документе, убедитесь, что вы понимаете следующие темы:
- Если вам незнаком параметр keepalive timeout, см. описание свойства
keepalive.timeout.millisв спецификации свойств транспортного уровня TargetEndpoint . - Если вы не знакомы с настройкой параметров Edge в частном облаке, прочтите статью «Как настроить Edge» .
Настройка таймаута поддержания соединения в API-прокси
Тайм-аут для поддержания соединения можно настроить в API-прокси в следующих местах:
- Целевая конечная точка
- Политика
ServiceCallout
Настройка таймаута поддержания соединения в целевой конечной точке API-прокси
В этом разделе объясняется, как настроить таймаут "поддержания соединения" в целевой конечной точке вашего API-прокси. Таймаут "поддержания соединения" можно настроить с помощью свойства keepalive.timeout.millis , которое представляет значение таймаута "поддержания соединения" в миллисекундах.
- В пользовательском интерфейсе Edge выберите конкретный API-прокси, для которого вы хотите настроить новое значение таймаута keep-alive.
- Выберите конкретную целевую конечную точку, которую вы хотите изменить.
Добавьте свойство
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>- Сохраните изменения, внесенные в ваш API-прокси.
Настройка таймаута поддержания соединения в политике ServiceCallout API-прокси
В этом разделе объясняется, как настроить таймаут поддержания соединения в политике ServiceCallout вашего API-прокси. Таймаут поддержания соединения можно настроить с помощью свойства the keepalive.timeout.millis , которое представляет значение таймаута поддержания соединения в миллисекундах.
Чтобы настроить таймаут поддержания соединения в политике ServiceCallout с помощью свойства keepalive.timeout.millis :
- В пользовательском интерфейсе Edge выберите конкретный API-прокси, для которого вы хотите настроить новое значение таймаута keep alive для политики
ServiceCallout. - Выберите конкретную политику
ServiceCallout, которую вы хотите изменить. - Добавьте свойство
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> - Сохраните изменения, внесенные в ваш API-прокси.
Настройка таймаута поддержания соединения в обработчиках сообщений
В этом разделе объясняется, как настроить таймаут "поддержания соединения" в обработчиках сообщений. Таймаут "поддержания соединения" можно настроить с помощью свойства HTTPClient.keepalive.timeout.millis , которое представляет значение таймаута "поддержания соединения" в миллисекундах в компоненте обработчика сообщений. Поскольку это свойство закомментировано в обработчике сообщений, необходимо использовать специальный синтаксис conf/http.properties+HTTPClient.keepalive.timeout.millis как описано в разделе "Установка токена", который в настоящее время закомментирован в разделе "Как настроить Edge" .
Для настройки таймаута поддержания соединения в обработчиках сообщений выполните следующие действия:
- На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью
vi, введите следующее:vi /opt/apigee/customer/application/message-processor.properties
- Добавьте в файл свойств строку следующего формата, заменив значение параметра TIME_IN_MILLISECONDS :
conf/http.properties+HTTPClient.keepalive.timeout.millis=TIME_IN_MILLISECONDS
Например, чтобы изменить время ожидания соединения в обработчике сообщений на
30секунд, добавьте следующую строку:conf/http.properties+HTTPClient.keepalive.timeout.millis=30000
- Сохраните изменения.
- Убедитесь, что файл свойств принадлежит пользователю
apigee, как показано ниже:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите обработчик сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.
Проверка таймаута поддержания соединения в обработчиках сообщений.
В этом разделе объясняется, как проверить, что время ожидания "keep alive" было успешно изменено в обработчиках сообщений.
Даже если вы используете специальный синтаксис conf/http.properties+HTTPClient.keepalive.timeout.millis для установки таймаута поддержания соединения в обработчике сообщений, необходимо убедиться, что фактическое свойство HTTPClient.keepalive.timeout.millis было установлено с новым значением.
- На машине обработчика сообщений найдите свойство
HTTPClient.keepalive.timeout.millisв каталоге/opt/apigee/edge-message-processor/confи проверьте, установлено ли для него новое значение, как показано ниже:grep -ri "HTTPClient.keepalive.timeout.millis" /opt/apigee/edge-message-processor/conf
Если новое значение таймаута 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секунд в обработчике сообщений.- Если для свойства
HTTPClient.keepalive.timeout.millisпо-прежнему отображается старое значение, убедитесь, что вы правильно выполнили все шаги, описанные в разделе «Настройка таймаута keep-alive в обработчиках сообщений» . Если вы пропустили какой-либо шаг, повторите все шаги заново. - Если вам по-прежнему не удается изменить время ожидания соединения (keep alive timeout), обратитесь в службу поддержки Google Cloud Apigee Edge .