L4 распределяет транспортные соединения, L7 понимает HTTP и может маршрутизировать по host/path/заголовкам. Для миллионов WebSocket важны ресурсы соединений и TLS, а не только номер уровня.
В чём разница между балансировкой нагрузки на 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 перед пулом WebSocket-серверов. Для HTTP-политик, авторизации handshake и маршрутов нужен L7; HAProxy может работать в обоих режимах. TLS-терминация и WebSocket-терминация — разные функции. Измеряйте память на соединение, FD, CPU handshake, тайм-ауты и graceful draining. Установленное соединение нельзя произвольно перенести на другой backend без переподключения.
Источник: www.haproxy.com.