YARP Docsv2.3
Документация/Трафик и надёжность/Балансировка нагрузки

Балансировка нагрузки

Когда у кластера есть более одного работоспособного узла назначения, YARP выбирает, какой из них обработает каждый запрос, используя настраиваемую политику балансировки нагрузки.

Политики

YARP поставляется с несколькими встроенными политиками балансировки нагрузки:

  • Round Robin (циклический перебор) — последовательно перебирает список узлов назначения по порядку, отдавая каждому равную долю трафика.
  • Least Requests (наименьшее число запросов) — отправляет каждый запрос тому узлу назначения, у которого в данный момент меньше всего запросов в обработке.
  • Random (случайный выбор) — выбирает узел назначения случайным образом.
  • Power of Two Choices (выбор из двух вариантов) — выбирает два случайных узла назначения и направляет запрос тому из них, у которого меньше запросов в обработке; хороший вариант по умолчанию при большом масштабе, поскольку позволяет избежать «эффекта толпы», характерного для чисто случайного выбора.
  • First (первый) — всегда выбирает первый доступный узел назначения; полезен главным образом для тестирования и сценариев A/B-тестирования.

Задание политики кластера

Поле LoadBalancingPolicy кластера.

JSON{
  "Clusters": {
    "cluster1": {
      "LoadBalancingPolicy": "PowerOfTwoChoices",
      "Destinations": {
        "cluster1/destination1": { "Address": "https://localhost:10000/" },
        "cluster1/destination2": { "Address": "https://localhost:10010/" }
      }
    }
  }
}

Настройка

Если политика не указана, по умолчанию используется Power of Two Choices. Учитываются только узлы назначения, о которых известно, что они работоспособны — о том, как узел назначения помечается как неработоспособный и исключается из ротации, см. в разделе Проверки работоспособности узлов назначения.

Примечание

Балансировка нагрузки распределяет запросы между узлами назначения; она не закрепляет конкретного клиента за одним и тем же узлом назначения между запросами. Если вам нужно именно это, см. вместо этого раздел Привязка сессии.

Пользовательские политики

Реализуйте ILoadBalancingPolicy и зарегистрируйте его в DI, чтобы подключить собственную логику выбора — это та же самая точка расширения, на которой построены встроенные политики самого YARP.

Адаптировано из Microsoft Learn , лицензия CC BY 4.0 .