Как работает балансировка нагрузки
Вопрос
Расскажите, как работает балансировщик нагрузки, какие бывают алгоритмы и как он понимает, что узел нездоров.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
L4 работает с TCP/UDP, L7 с HTTP: маршрутизация по пути, заголовкам, TLS-терминация
Алгоритмы: round robin, weighted, least connections, хеш по ключу
Health checks активные и пассивные, исключение узла из ротации
Сам балансировщик резервируют, чтобы не стал единой точкой отказа
Graceful shutdown: узел снимают с ротации до остановки
Что могут спросить следом
- Когда нужен least connections вместо round robin?
- Как сделать балансировщик отказоустойчивым?
Разбор
Балансировщик принимает запросы и раскидывает по пулу серверов. L4 видит только IP и порт, это быстро; L7 разбирает HTTP, может маршрутизировать по пути и заголовкам и снимать TLS. Алгоритмы: round robin для одинаковых узлов, взвешенный для разных по мощности, least connections когда запросы разной длительности, хеш по ключу если нужна привязка. Здоровье проверяется активно (периодический запрос на /health) и пассивно (ошибки на живом трафике), больной узел убирается из ротации. Сам балансировщик тоже дублируют: пара с общим виртуальным IP или несколько за DNS. При деплое узел сначала перестаёт получать новые запросы, дорабатывает текущие и только потом останавливается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.