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

У меня есть вопрос о том, как загрузить балансировочные веб-сокеты.

У меня есть сервер, который поддерживает веб-сокеты. Браузеры подключаются к моему сайту, и каждый открывает веб-сокет дляwww.mydomain.com, Таким образом, мое приложение для социальной сети может отправлять сообщения клиентам.

Традиционно, используя только HTTP-запросы, я увеличивал масштаб, добавляя второй сервер и балансировщик нагрузки перед двумя веб-серверами.

В случае веб-сокетов соединение должно осуществляться непосредственно с веб-сервером, а не с балансировщиками нагрузки, потому что, если у компьютера есть физическое ограничение, скажем, 64 КБ открытых портов, и клиенты подключались к балансировщику нагрузки, то я не смогу поддерживать более 64 тыс. одновременных пользователей.

Так как же я -

get the client to connect directly to the web server (rather than the load balancer) when the page loads? Do I simply load the JavaScript from a node, and the load balancers (or whatever) randomly modifies the URL for the script, every time the page is initially requested?

handle a ripple start? The browser will notice that the connection is closed as the web server shuts down. I can write JavaScript code to attempt to reopen the connection, but the node will be gone for a while. So I guess I would have to go back to the load balancer to query the address of the next node to use?

I did wonder about the load balancers sending a redirect on the initial request, so that the browser initially requests www.mydomain.com and gets redirected to www34.mydomain.com. That works quite well, until the node goes down - and sites like Facebook don't do that. How do they do it?

Ответы на вопрос(3)

Ваш ответ на вопрос