Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
API-запросы, отправляемые клиентскими приложениями, проходят через различные компоненты Apigee Edge, прежде чем достигнут серверной части. Большинство клиентских приложений ожидают своевременного получения ответов на эти запросы.
Для обеспечения своевременного ответа значения таймаута ввода-вывода устанавливаются в каждом из компонентов, через которые проходят запросы API. Если какой-либо из компонентов в потоке занимает больше времени, чем предыдущий компонент, предыдущий компонент истекает по таймауту и отправляет ответ с ошибкой 504 Gateway Timeout .
При настройке тайм-аута значения следует задавать с особой тщательностью в каждом из компонентов, иначе это может привести к ошибке 504 Gateway Timeout .
В этом документе описаны лучшие практики настройки таймаута ввода-вывода для различных компонентов, через которые проходят запросы API в Apigee Edge.
Рекомендации по настройке таймаута ввода-вывода
При настройке тайм-аута ввода-вывода следует учитывать следующие рекомендации:
- Первый компонент: Всегда используйте максимальное время ожидания для первого компонента в потоке запросов API, которым является клиентское приложение в Apigee Edge.
- Последний компонент: Всегда используйте наименьшее время ожидания для последнего компонента в потоке запросов API, которым является бэкэнд-сервис в Apigee Edge.
- Между компонентами: Убедитесь, что разница в значении таймаута, заданном в каждом компоненте, между первым и последним компонентом в потоке составляет не менее 2-3 секунд.
- Маршрутизатор: Всегда рекомендуется настраивать (изменять) значение таймаута ввода-вывода для конкретного виртуального хоста, а не настраивать его на маршрутизаторе. Это гарантирует, что новое значение таймаута повлияет только на те API-прокси, которые используют конкретный виртуальный хост, а не на все API-прокси, обслуживаемые маршрутизатором.
Настраивайте (изменяйте) таймаут ввода-вывода на маршрутизаторе только в том случае, если вы абсолютно уверены, что новое значение таймаута ввода-вывода необходимо или применимо для всех API-прокси, работающих на маршрутизаторе.
- Обработчик сообщений: Всегда рекомендуется настраивать (изменять) значение таймаута ввода-вывода для конкретного API-прокси, а не настраивать его в обработчике сообщений. Это гарантирует, что новое значение таймаута повлияет только на конкретный API-прокси, а не на все API-прокси, обслуживаемые обработчиком сообщений.
Настраивайте (изменяйте) таймаут ввода-вывода в обработчике сообщений только тогда, когда вы абсолютно уверены, что новое значение таймаута ввода-вывода необходимо или применимо для всех API-прокси, работающих в обработчике сообщений.
Примеры сценариев
Приведенные в этом разделе сценарии помогут вам понять, как правильно установить значения тайм-аута ввода-вывода.
Сценарий 1: Запросы к Apigee Edge напрямую от клиентских приложений.
В этом разделе описаны лучшие практики, которым следует следовать при настройке значений тайм-аута в конфигурации Apigee Edge, где отсутствуют промежуточные компоненты между клиентским приложением и Apigee Edge, а также между Apigee Edge и вашим бэкэнд-сервером.
Пример настройки Apigee без промежуточных компонентов.

Если Apigee Edge настроен, как показано на схеме выше, без промежуточных компонентов, то следует придерживаться следующих рекомендаций:
- Клиентское приложение является первым компонентом в этом процессе. Максимальное значение таймаута должно быть установлено на стороне клиента.
- Серверная часть является последним компонентом в этом процессе. На серверной части следует установить минимальное значение тайм-аута .
- Настройте значения тайм-аута для каждого из компонентов в следующем порядке:

В следующем примере показаны значения тайм-аута, установленные для различных компонентов в соответствии с приведенными выше рекомендациями во избежание проблем:

Сценарий 2: Запросы к Apigee Edge от клиентских приложений через промежуточные компоненты.
В этом разделе описаны лучшие практики, которым следует следовать при настройке значений тайм-аута в конфигурации Apigee Edge, где имеется один или несколько промежуточных компонентов между клиентским приложением и Apigee Edge, а также между Apigee Edge и вашим бэкэнд-сервером.
В качестве промежуточных компонентов могут выступать балансировщик нагрузки, сеть доставки контента ( CDN ), NGINX и так далее.
Пример настройки Apigee с одним промежуточным компонентом между клиентом и Apigee Edge, а также между Apigee Edge и бэкэнд-сервером.

Если Apigee Edge настроен, как показано на схеме выше, с одним или несколькими промежуточными компонентами, то следует придерживаться следующих рекомендаций:
- Клиентское приложение является первым компонентом в этом процессе. Максимальное значение таймаута должно быть установлено на стороне клиента.
- Серверная часть является последним компонентом в этом процессе. На серверной части следует установить минимальное значение тайм-аута .
- Настройте значения тайм-аута для каждого из компонентов, включая промежуточные компоненты, в следующем порядке:

В следующем примере показаны значения тайм-аута, установленные для различных компонентов в соответствии с приведенными выше рекомендациями во избежание проблем:
