Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В этом документе объясняется, как настроить тайм-аут ввода-вывода для процессоров сообщений Apigee Edge.
Тайм-аут ввода-вывода в обработчике сообщений представляет собой время, в течение которого обработчик сообщений ожидает либо получения ответа от бэкэнд-сервера, либо готовности сокета к записи запроса на бэкэнд-сервер, прежде чем истечет время ожидания.
Значение по умолчанию для таймаута ввода-вывода обработчика сообщений составляет 55 seconds . Этот период таймаута применяется к бэкэнд-серверам, настроенным в конфигурации целевой конечной точки и в политике ServiceCallout вашего API-прокси.
Время ожидания ввода-вывода для обработчиков сообщений можно увеличить или уменьшить по сравнению со значением по умолчанию в 55 seconds в зависимости от ваших потребностей. Его можно настроить в следующих местах:
- В API-прокси
- Целевая конечная точка
- Политика вызова сервисной службы
- В процессоре сообщений
Следующие параметры управляют тайм-аутом ввода-вывода в обработчиках сообщений:
| Название объекта недвижимости | Расположение | Описание |
|---|---|---|
io.timeout.millis | API-прокси:
| Это максимальное время, в течение которого обработчик сообщений выполняет следующие действия:
Если в течение этого периода ожидания от бэкэнд-сервера не поступает ответа, то обработчик сообщений завершает работу по истечении заданного времени ожидания. По умолчанию это свойство принимает значение, установленное для свойства Если это свойство изменяется с новым значением таймаута для конкретного API-прокси, то это затрагивает только этот API-прокси. |
HTTPTransport.io.timeout.millis | Обработчик сообщений | Это максимальное время, в течение которого обработчик сообщений выполняет следующие действия:
Если в течение этого периода ожидания от бэкэнд-сервера не поступает ответа, то обработчик сообщений завершает работу по истечении заданного времени ожидания. Это свойство используется для всех API-прокси, работающих на этом обработчике сообщений. Значение по умолчанию для этого параметра составляет Вы можете либо изменить это свойство, как описано в разделе «Настройка таймаута ввода-вывода в обработчиках сообщений» , либо переопределить это значение, установив свойство |
Прежде чем начать
Прежде чем приступить к выполнению действий, описанных в этом документе, убедитесь, что вы понимаете следующие темы:
- Если вам незнакома функция таймаута ввода-вывода, см. описание свойства
io.timeout.millisв спецификации свойств транспортного уровня TargetEndpoint . - Если вы не знакомы с настройкой параметров Edge для частного облака, прочтите статью «Как настроить Edge» .
- Убедитесь, что вы следуете рекомендациям, изложенным в разделе «Рекомендации по настройке таймаута ввода-вывода» .
Настройка таймаута ввода-вывода в API-прокси
Тайм-аут ввода-вывода можно настроить в следующих местах API-прокси:
- Целевая конечная точка
- Политика вызова сервисной службы
Настройка таймаута ввода-вывода в целевой конечной точке 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.
Элемент тайм-аута
Чтобы настроить тайм-аут ввода-вывода в политике 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 , которое представляет значение тайм-аута ввода-вывода в миллисекундах для компонента обработчика сообщений, используя токен в соответствии с синтаксисом, описанным в разделе «Как настроить Edge» .
Для настройки тайм-аута ввода-вывода на обработчиках сообщений выполните следующие действия:
- На машине обработки сообщений откройте следующий файл в текстовом редакторе. Если он еще не существует, создайте его.
/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
- Перезапустите обработчик сообщений, как показано ниже:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Если у вас несколько обработчиков сообщений, повторите описанные выше шаги для всех обработчиков сообщений.
Проверка таймаута ввода-вывода в обработчиках сообщений.
В этом разделе объясняется, как проверить, что время ожидания ввода-вывода было успешно изменено на обработчиках сообщений.
Даже если вы используете токен conf_http_HTTPTransport.io.timeout.millis для установки таймаута ввода-вывода в обработчике сообщений, необходимо проверить, было ли фактическое свойство HTTPTransport.io.timeout.millis установлено с новым значением.
- На машине обработчика сообщений найдите свойство
HTTPTransport.io.timeout.millisв каталоге/opt/apigee/edge-message-processor/confи проверьте, установлено ли для него новое значение, как показано ниже:grep -ri "HTTPTransport.io.timeout.millis" /opt/apigee/edge-message-processor/conf
- Если новое значение таймаута ввода-вывода успешно установлено в обработчике сообщений, то приведенная выше команда отобразит новое значение в файле
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 в http.properties было установлено на новое значение 120000 Это указывает на то, что таймаут ввода-вывода успешно настроен на 120 секунд в обработчике сообщений.
Что дальше?
Узнайте о настройке тайм-аута ввода-вывода на маршрутизаторах.