Балансировка нагрузки
Когда у кластера есть более одного работоспособного узла назначения, 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.