В чём разница между балансировкой нагрузки на 4-м уровне (L4: TCP/UDP) и 7-м уровне (L7: HTTP/HTTPS) модели OSI? Какой тип балансировщика, например HAProxy/Nginx или AWS NLB/IPVS, эффективнее выбрать для терминации миллионов долгоживущих WebSocket-соединений?

L4 распределяет транспортные соединения, L7 понимает HTTP и может маршрутизировать по host/path/заголовкам. Для миллионов WebSocket важны ресурсы соединений и TLS, а не только номер уровня.

Короткий ответ

Что ответить на собеседовании

L4 распределяет транспортные соединения, L7 понимает HTTP и может маршрутизировать по host/path/заголовкам. Для миллионов WebSocket важны ресурсы соединений и TLS, а не только номер уровня.

Подробный разбор

Ответ с пояснениями

L4 распределяет транспортные соединения, L7 понимает HTTP и может маршрутизировать по host/path/заголовкам. Для миллионов WebSocket важны ресурсы соединений и TLS, а не только номер уровня.

Если нужна лишь эффективная передача соединений, рассмотрите L4 перед пулом WebSocket-серверов. Для HTTP-политик, авторизации handshake и маршрутов нужен L7; HAProxy может работать в обоих режимах. TLS-терминация и WebSocket-терминация — разные функции. Измеряйте память на соединение, FD, CPU handshake, тайм-ауты и graceful draining. Установленное соединение нельзя произвольно перенести на другой backend без переподключения.

Источник: www.haproxy.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее