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

Вы просматриваете документацию 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, работающих на маршрутизаторе.

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

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

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

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

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

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

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

Flow starting at Client going to Router and then to Message Processor and then to Backend Server

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

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

    Configure timeout on client, then Router, then Message Processor, then Backend Server

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

    Configure timeout on client at 60 seconds, then Router at 57 seconds, then Message Processor at 55 seconds, then Backend Server at 52 seconds

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

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

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

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

Flow starting at Client going to Intermediate Component 1 and then to Router and then to Message Processor and then to Intermediate Component 2 and then to Backend Server

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

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

    Configure timeout on client, then Intermediate Component 1, then Router, then Message Processor, then Intermediate Component 2, then Backend Server

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

    Configure timeout on client at 63 seconds, then Intermediate Component 1 at 60 seconds, then Router at 57 seconds, then Message Processor st 55 seconds, then Intermediate Component 2 at 52 seconds, then Backend Server at 59 seconds