Ответ вслух Middle Масштабирование обновлено

Как работает балансировка нагрузки

Вопрос

Расскажите, как работает балансировщик нагрузки, какие бывают алгоритмы и как он понимает, что узел нездоров.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Балансировщик принимает запросы и раскидывает по пулу серверов. L4 видит только IP и порт, это быстро; L7 разбирает HTTP, может маршрутизировать по пути и заголовкам и снимать TLS.

Что должно прозвучать в ответе

  • 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 ошибок.