Поделиться через


Методы маршрутизации трафика к источнику

Важный

Azure Front Door (classic) будет прекращён 31 марта 2027 года. Чтобы избежать нарушений работы служб, важно перенести профили Azure Front Door (классический) на уровень Azure Front Door standard или Premium к марту 2027 года. Для получения дополнительной информации, см. прекращение обслуживания Azure Front Door (classic).

Azure Front Door поддерживает четыре метода маршрутизации трафика для управления распределением вашего HTTP/HTTPS трафика между различными источниками. Когда пользовательские запросы достигают пограничных узлов Front Door, настроенный метод маршрутизации обеспечивает отправку запросов к наилучшему серверу бэкенда.

Примечание

В этой статье термин Origin относится к серверной части, а термин группа источников относится к пулу серверов в конфигурации Azure Front Door (классической версии).

Четыре метода маршрутизации трафика:

  • Latency: Routes requests to the origins with the lowest latency within an acceptable sensitivity range, ensuring requests are sent to the nearest origins in terms of network latency.

  • Приоритет: Позволяет вам установить приоритет для ваших источников, назначая основной источник для обработки всего трафика и вторичный источник в качестве резервного, если основной станет недоступен.

  • Взвешенный: Назначает вес каждому источнику, чтобы распределять трафик равномерно или в соответствии с указанными коэффициентами веса. Traffic is distributed based on weight values if the origins' latencies are within the acceptable sensitivity range.

  • Привязка сессии: Гарантирует, что запросы от одного и того же конечного пользователя отправляются к одному и тому же источнику, настраивая привязку сессии для ваших фронтенд-хостов или доменов.

Note

В уровнях Azure Front Door Standard и Premium, Имя конечной точки называется Frontend host в Azure Front Door (classic).

All Front Door configurations include backend health monitoring and automated global failover. For more information, see Front Door backend monitoring. Azure Front Door can use a single routing method or combine multiple methods to create an optimal routing topology based on your application needs.

Примечание

Using the Front Door rules engine, you can configure rules to override route configurations in Azure Front Door Standard and Premium tiers or override the backend pool in Azure Front Door (classic) for a request. Группа исходных данных или пул серверов, установленные механизмом правил, переопределят процесс маршрутизации, описанный в этой статье.

Общий поток решений

Следующая диаграмма иллюстрирует общий поток принятия решений.

Диаграмма, объясняющая, как выбираются источники на основе приоритета, задержки и весовых настроек в Azure Front Door.

Этапы принятия решения:

  1. Доступные источники: Выберите все источники, которые включены и находятся в хорошем состоянии (200 OK) по результатам проверки работоспособности.
    • Пример: Если имеется шесть источников A, B, C, D, E и F, и C является неисправным, а E отключен, то доступные источники - это A, B, D и F.
  2. Приоритет: Выберите наиболее приоритетные источники из доступных.
    • Пример: Если источники A, B и D имеют приоритет 1, а источник F — приоритет 2, то выбранными источниками будут A, B и D.
  3. Latency signal (based on health probe): Select origins within the allowable latency range from the Front Door environment where the request arrived. Это основано на настройке чувствительности к задержке группы источников и задержке ближайших источников.
    • Пример: если задержка до источника A составляет 15 мс, до B — 30 мс, а до D — 60 мс, и чувствительность к задержке установлена на 30 мс, выбор падает на источники A и B, так как D превышает порог в 30 мс.
  4. Weights: Distribute traffic among the final selected origins based on the specified weight ratios.
    • Пример: Если у источника А вес 3, а у источника B вес 7, то трафик распределяется 3/10 на А и 7/10 на B.

Если прилипание к сеансу включено, первый запрос в сеансе следует ранее описанному потоку. Последующие запросы отправляются на источник, выбранный в первом запросе.

Маршрутизация трафика на основе минимальной задержки

Размещение исходных точек в различных глобальных локациях может повысить отзывчивость вашего приложения, направляя трафик в ту исходную точку, которая находится «ближе» всего к вашим конечным пользователям. Метод маршрутизации с учетом задержки является стандартным для конфигураций Azure Front Door. Этот метод направляет пользовательские запросы к источнику с наименьшей сетевой задержкой, а не к ближайшему географическому расположению, обеспечивая оптимальную производительность.

Архитектура anycast Azure Front Door в сочетании с методом маршрутизации задержки гарантирует, что каждый пользователь получает оптимальную производительность в зависимости от его местоположения. Каждая среда Front Door независимо измеряет задержку до исходных точек, таким образом пользователи в разных географических точках направляются к исходной точке, обеспечивающей наилучшую производительность для их конкретной среды.

Примечание

By default, the latency sensitivity property is set to 0 ms. С помощью этой настройки запросы всегда перенаправляются на самые быстрые доступные источники. Вес на источники применяется только в том случае, если у двух источников одинаковая задержка сети.

For more information, see Azure Front Door routing architecture.

Приоритезированная маршрутизация трафика

Для обеспечения высокой доступности организации часто разворачивают резервные службы, которые берут на себя работу в случае отказа основного сервиса. Эта конфигурация известна как активный/резервный или активный/пассивный вариант развертывания. Метод маршрутизации трафика Priority в Azure Front Door позволяет эффективно реализовать этот шаблон резервного переключения.

По умолчанию Azure Front Door направляет трафик к источникам с наивысшим приоритетом (с наименьшим значением приоритета). Если эти основные источники станут недоступны, трафик будет направляться на вторичные источники (следующее наименьшее значение приоритета). Этот процесс продолжается с третичными источниками, если как первичные, так и вторичные источники недоступны. Зондирования состояния проверяют доступность источников на основе их сконфигурированного состояния и здоровья.

Настройка приоритетов для источников

В каждой исходной точке вашей группы источников Azure Front Door есть свойство Priority, которое может быть установлено в значение от 1 до 5. Низкие значения означают более высокий приоритет. Multiple origins can share the same priority value.

Метод маршрутизации трафика с учетом веса

Примечание

Для клиентов с очень низким показателем RPS (запросы в секунду) из-за того, как расположены узлы POP и устройства AFD, мы не можем гарантировать, что клиентские настройки весов будут строго соблюдаться, и балансировка нагрузки может казаться несбалансированной.

Метод маршрутизации трафика с использованием веса позволяет распределять трафик на основе предопределённых весов.

В этом методе вы назначаете вес каждому источнику в вашей группе источников Azure Front Door. The weight is an integer between 1 and 1000, with a default value of 50.

Трафик распределяется среди доступных источников с использованием механизма цикла на основе указанных весовых коэффициентов, при условии, что источники соответствуют допустимой чувствительности к задержке. If the latency sensitivity is set to 0 milliseconds, weights only take effect if two origins have the same network latency.

Взвешенный метод поддерживает несколько сценариев:

  • Gradual application upgrade: Route a percentage of traffic to a new origin and gradually increase it over time.
  • Application migration to Azure: Create an origin group with both Azure and external origins. Adjust weights to prefer new origins, gradually increasing their traffic share until they handle most traffic, then disable and remove less preferred origins.
  • Cloud-bursting for additional capacity: Expand on-premises deployments into the cloud by adding or enabling more origins and specifying traffic distribution.

Session affinity

By default, Azure Front Door forwards requests from the same client to different origins. However, session affinity is useful for stateful applications or scenarios where subsequent requests from the same user need to be processed by the same origin. Эта функция гарантирует, что сессия пользователя обрабатывается тем же источником, что полезно в сценариях, таких как аутентификация клиента.

Azure Front Door использует привязку сеанса, основанную на cookies, где управляемые cookies с SHA256 от URL источника используются в качестве идентификатора. Это направляет последующий трафик из пользовательской сессии к тому же источнику.

Сохранение сеанса может быть включено на уровне группы источников в планах Azure Front Door Standard и Premium, а также на уровне фронтенд-хоста в Azure Front Door (классический) для каждого настроенного домена или поддомена. Once enabled, Azure Front Door adds cookies named ASLBSA and ASLBSACORS to the user's session. Эти cookies помогают идентифицировать разных пользователей, даже если они используют один и тот же IP-адрес, что позволяет равномернее распределять трафик между источниками.

Срок действия cookie совпадает с пользовательской сессией, так как Front Door в настоящее время поддерживает только сессионные cookies.

Примечание

Session affinity is maintained through the browser session cookie at the domain level. Subdomains under the same wildcard domain can share session affinity as long as the user's browser sends requests for the same origin resource.

Общедоступные прокси могут мешать сеансовой аффинности, поскольку установление сеанса требует, чтобы Front Door добавил куки для сеансовой аффинности в ответ. Это невозможно сделать, если ответ кешируемый, так как это нарушит работу cookies у других клиентов, запрашивающих тот же ресурс. Чтобы предотвратить это, привязка сеанса не будет установлена, если источник отправляет кэшируемый ответ. Если сеанс уже установлен, кэшируемость ответа не имеет значения.

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

  • Ответ включает заголовок Cache-Control с no-store.
  • Ответ содержит допустимый Authorization заголовок.
  • Ответ — это код состояния HTTP 302.

Следующие шаги