Рекомендации по настройке времени ожидания ввода-вывода

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Запросы API, отправляемые клиентскими приложениями, проходят через различные компоненты Apigee Edge, прежде чем достичь серверных сервисов. Большинство клиентских приложений ожидают, что ответы на эти запросы будут получены своевременно.

Чтобы обеспечить своевременные ответы, значения времени ожидания ввода-вывода задаются в каждом из компонентов, через которые проходят запросы API. Если какой-либо компонент в потоке занимает больше времени, чем предыдущий, то предыдущий компонент истекает и возвращает ошибку 504 Gateway Timeout.

При настройке времени ожидания следует очень внимательно задавать значения для каждого компонента, иначе могут возникнуть ошибки 504 Gateway Timeout.

В этом документе описаны рекомендации по настройке времени ожидания ввода-вывода для различных компонентов, через которые проходят запросы API в Apigee Edge.

Рекомендации по настройке времени ожидания ввода-вывода

При настройке времени ожидания ввода-вывода следуйте приведенным ниже рекомендациям.

  • Первый компонент. В первом компоненте потока запросов API всегда используйте самый большой тайм-аут. В Apigee Edge это клиентское приложение.
  • Последний компонент. Всегда используйте наименьшее значение времени ожидания для последнего компонента в потоке запросов API, которым в Apigee Edge является серверная служба.
  • Между компонентами. Убедитесь, что разница между значениями времени ожидания, заданными в первом и последнем компонентах, составляет не менее 2–3 секунд.
  • Маршрутизатор. Рекомендуется настраивать (изменять) значение тайм-аута ввода-вывода для определенного виртуального хоста, а не для маршрутизатора. Это гарантирует, что новое значение времени ожидания повлияет только на те прокси API, которые используют определенный виртуальный хост, а не на все прокси API, обслуживаемые маршрутизатором.

    Настраивайте (изменяйте) тайм-аут ввода-вывода на маршрутизаторе только в том случае, если вы абсолютно уверены, что новое значение тайм-аута ввода-вывода необходимо или применимо ко всем прокси API, запущенным на маршрутизаторе.

  • Message Processor. Рекомендуется настраивать (изменять) значение времени ожидания ввода-вывода для определенного прокси-сервера API, а не для Message Processor. Это гарантирует, что новое значение времени ожидания повлияет только на определенный прокси-сервер API, а не на все прокси-серверы API, обслуживаемые Message Processor.

    Настраивайте (изменяйте) время ожидания ввода-вывода в Message Processor только в том случае, если вы абсолютно уверены, что новое значение времени ожидания ввода-вывода необходимо или применимо ко всем прокси-серверам API, работающим в Message Processor.

Примеры сценариев

Приведенные ниже сценарии помогут вам понять, как правильно задавать значения тайм-аута ввода-вывода.

Сценарий 1. Запросы к Apigee Edge от клиентских приложений напрямую

В этом разделе описаны рекомендации по настройке значений времени ожидания в Apigee Edge, если между клиентским приложением и Apigee Edge, а также между Apigee Edge и внутренним сервером нет промежуточных компонентов.

Пример настройки Apigee без промежуточных компонентов

Схема, на которой клиент подключается к маршрутизатору, затем к Message Processor и, наконец, к серверу.

Если Apigee Edge настроен так, как показано на схеме выше, без промежуточных компонентов, следуйте приведенным ниже рекомендациям.

  1. Клиентское приложение – первый компонент в цепочке. Самое большое значение времени ожидания следует задать на стороне клиента.
  2. Серверная часть – последний компонент в цепочке. Наименьшее значение времени ожидания должно быть задано на внутреннем сервере.
  3. Настройте значения тайм-аута для каждого компонента в следующем порядке:

    Настройте время ожидания на клиенте, затем на маршрутизаторе, Message Processor и конечном сервере

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

    Настройте время ожидания на клиенте на уровне 60 секунд, на маршрутизаторе – 57 секунд, на Message Processor – 55 секунд, а на бэкенд-сервере – 52 секунды.

Сценарий 2. Запросы к Apigee Edge от клиентских приложений через промежуточные компоненты

В этом разделе описаны рекомендации по настройке значений времени ожидания в конфигурации Apigee Edge, в которой между клиентским приложением и Apigee Edge, а также между Apigee Edge и внутренним сервером есть один или несколько промежуточных компонентов.

Промежуточными компонентами могут быть балансировщик нагрузки, сеть доставки контента (CDN), NGINX и т. д.

Пример конфигурации Apigee с одним промежуточным компонентом между клиентом и Apigee Edge, а также между Apigee Edge и внутренним сервером

Схема, на которой клиент подключается к промежуточному компоненту 1, затем к маршрутизатору, затем к Message Processor, затем к промежуточному компоненту 2 и, наконец, к бэкенд-серверу.

Если Apigee Edge настроен так, как показано на схеме выше, с одним или несколькими промежуточными компонентами, следуйте приведенным ниже рекомендациям.

  1. Клиентское приложение – первый компонент в цепочке. На клиенте должно быть установлено наибольшее значение тайм-аута.
  2. Серверная часть – последний компонент в цепочке. Наименьшее значение тайм-аута следует задать на внутреннем сервере.
  3. Настройте значения времени ожидания для каждого компонента, включая промежуточные, в следующем порядке:

    Настройте время ожидания на клиенте, затем на промежуточном компоненте 1, маршрутизаторе, Message Processor, промежуточном компоненте 2 и бэкенд-сервере.

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

    Настройте время ожидания на клиенте на 63 секунды, на промежуточном компоненте 1 – на 60 секунд, на маршрутизаторе – на 57 секунд, на Message Processor – на 55 секунд, на промежуточном компоненте 2 – на 52 секунды, а на серверной части – на 59 секунд.