Вы просматриваете документацию по 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 превысит время ожидания.
По умолчанию это свойство принимает значение, заданное для свойства Если это свойство изменено с новым значением времени ожидания для определенного прокси-сервера API, то это повлияет только на этот прокси-сервер API. |
HTTPTransport.io.timeout.millis
|
Message Processor |
Это максимальное время, в течение которого Message Processor выполняет следующие действия:
Если в течение этого времени от бэкенд-сервера не поступит ответа, Message Processor превысит время ожидания. Это свойство используется для всех прокси API, запущенных на этом Message Processor.
Значение по умолчанию –
Вы можете изменить это свойство, как описано в разделе Настройка времени ожидания ввода-вывода в процессорах сообщений, или переопределить его значение, задав свойство |
Подготовка
Прежде чем выполнять описанные в этом документе действия, убедитесь, что вы понимаете следующие темы:
- Если вы не знакомы с тайм-аутом ввода-вывода, ознакомьтесь с описанием свойства
io.timeout.millisв спецификации транспортного свойства TargetEndpoint. - Если вы не знаете, как настраивать свойства для Edge for Private Cloud, прочитайте статью Как настроить Edge.
- Следуйте рекомендациям из статьи Рекомендации по настройке времени ожидания ввода-вывода.
Как настроить тайм-аут ввода-вывода в прокси-сервере API
Тайм-аут ввода-вывода можно настроить в следующих местах прокси API:
- Целевая конечная точка
- Правила ServiceCallout
Как настроить тайм-аут ввода-вывода в целевой конечной точке прокси API
В этом разделе рассказывается, как настроить время ожидания ввода-вывода в целевой конечной точке прокси-сервера API.
Время ожидания ввода-вывода можно настроить с помощью свойства io.timeout.millis, которое представляет значение времени ожидания ввода-вывода в миллисекундах.
- В интерфейсе Edge выберите нужный прокси-сервер API, в котором вы хотите настроить новое значение времени ожидания ввода-вывода.
- Выберите конечную точку, которую хотите изменить.
- Добавьте свойство
io.timeout.millisс подходящим значением в элемент<HTTPTargetConnection>конфигурацииTargetEndpoint. - Сохраните изменения, внесенные в прокси-сервер API.
Например, чтобы изменить время ожидания ввода-вывода на 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>Настройка времени ожидания ввода-вывода в правиле ServiceCallout прокси-сервера API
В этом разделе рассказывается, как настроить время ожидания ввода-вывода в правиле ServiceCallout прокси-сервера API. Время ожидания ввода-вывода можно настроить с помощью элемента <Timeout> или свойства io.timeout.millis. Элемент <Timeout> и свойство io.timeout.millis представляют значения времени ожидания ввода-вывода в миллисекундах.
Вы можете настроить время ожидания ввода-вывода в правиле ServiceCallout одним из следующих способов:
- элемент
<Timeout>. io.timeout.millis.
Элемент "Время ожидания"
Чтобы настроить время ожидания I/O в правиле ServiceCallout с помощью элемента <Timeout>, выполните следующие действия:
- В интерфейсе Edge выберите прокси-сервер API, в котором хотите настроить новое значение времени ожидания ввода-вывода для правила ServiceCallout.
- Выберите нужное правило ServiceCallout.
- Добавьте элемент
<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> - Сохраните изменения, внесенные в прокси-сервер API.
Свойство io.timeout.millis
Чтобы настроить время ожидания ввода-вывода в правиле ServiceCallout с помощью свойства io.timeout.millis, выполните следующие действия:
- В интерфейсе Edge выберите прокси-сервер API, в котором хотите настроить новое значение времени ожидания ввода-вывода для правила ServiceCallout.
- Выберите нужное правило ServiceCallout.
- Добавьте свойство
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> - Сохраните изменения, внесенные в прокси-сервер API.
Настройка времени ожидания ввода-вывода на процессорах сообщений
В этом разделе рассказывается, как настроить тайм-аут ввода-вывода на процессорах сообщений.
Время ожидания ввода-вывода можно настроить с помощью свойства HTTPTransport.io.timeout.millis, которое представляет значение времени ожидания ввода-вывода в миллисекундах для компонента Message Processor, используя токен в соответствии с синтаксисом, описанным в статье Как настроить Edge.
Чтобы настроить тайм-аут ввода-вывода на процессорах сообщений, выполните следующие действия:
- На компьютере Message Processor откройте в редакторе следующий файл: Если его ещё нет, создайте его.
/opt/apigee/customer/application/message-processor.properties
Например, чтобы открыть файл с помощью
vi, введите следующую команду:vi /opt/apigee/customer/application/message-processor.properties
- Добавьте в файл свойств строку в следующем формате, заменив TIME_IN_MILLISECONDS на нужное значение:
conf_http_HTTPTransport.io.timeout.millis=TIME_IN_MILLISECONDS
Например, чтобы изменить время ожидания ввода-вывода в процессоре сообщений на 120 секунд, добавьте следующую строку:
conf_http_HTTPTransport.io.timeout.millis=120000
- Сохраните изменения.
- Убедитесь, что файл свойств принадлежит пользователю
apigee, как показано ниже.chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Перезапустите Message Processor, как показано ниже.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас несколько Message Processor, повторите описанные выше действия для каждого из них.
Проверка времени ожидания ввода-вывода на процессорах сообщений
В этом разделе рассказывается, как проверить, что время ожидания ввода-вывода было успешно изменено в процессорах сообщений.
Даже если вы используете токен conf_http_HTTPTransport.io.timeout.millis, чтобы задать время ожидания ввода-вывода в Message Processor, вам нужно проверить, задано ли для свойства HTTPTransport.io.timeout.millis новое значение.
- На компьютере Message Processor найдите свойство
HTTPTransport.io.timeout.millisв каталоге/opt/apigee/edge-message-processor/confи проверьте, задано ли для него новое значение, как показано ниже:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- Если новое значение времени ожидания I/O успешно задано для Message Processor, то в файле
http.propertiesбудет указано новое значение. - Если вы по-прежнему видите старое значение для свойства
HTTPTransport.io.timeout.millis, убедитесь, что вы правильно выполнили все шаги, описанные в разделе Настройка времени ожидания ввода-вывода в процессорах сообщений. Если вы пропустили какой-либо шаг, повторите все действия заново. - Если вам по-прежнему не удается изменить время ожидания ввода-вывода, обратитесь в службу поддержки Apigee Edge.
Пример результата выполнения команды выше после настройки времени ожидания ввода-вывода на 120 секунд:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPTransport.io.timeout.millis=120000
В приведенном выше примере выходных данных обратите внимание, что для свойства HTTPTransport.io.timeout.millis задано новое значение 120000 в http.properties. Это означает, что на процессоре сообщений успешно настроен тайм-аут ввода-вывода в 120 секунд.
Что дальше?
Подробнее о настройке времени ожидания ввода-вывода на маршрутизаторах…