Веб-сокеты с масштабируемостью балансировки нагрузки
Я использую балансировщик нагрузки с моим веб-сайтом. Браузер инициирует подключение через веб-сокет к моему серверу приложений. Открытое соединение потребляет какие-либо ресурсы на LB или оно напрямую между браузером и сервером приложений? Если есть что-то открытое на LB, разве это не узкое место? Я имею в виду, что если мой LB может обрабатывать X открытых соединений, то пользователь X+1 не сможет даже открыть соединение.
1 ответ
Это зависит!
Наиболее эффективные балансировщики нагрузки прослушивают запросы, проводят некоторый анализ, а затем направляют запросы; все биты не проходят через балансировщик нагрузки. Переадресация сети происходит на более низком сетевом уровне, чем http (например, это не перенаправление http 302 - клиент никогда не узнает, что это произошло, сохраняя конфиденциальность при настройке внутренней сети - я думаю, это происходит на уровне 4 OSI).
Однако некоторые балансировщики нагрузки добавляют больше функций, таких как работа в качестве конечных точек SSL или применение сжатия gzip. В этих случаях они обрабатывают биты по мере прохождения (шифрование / дешифрование или сжатие в этом случае).
Картинка может помочь. Сравните первую диаграмму со вторым и третьим здесь, отметив перенаправление в первом, которое отсутствует в других.