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