У меня вопрос, как балансировать нагрузку на веб-сокеты.
У меня есть сервер, поддерживающий веб-сокеты. Браузеры подключаются к моему сайту, и каждый открывает веб-сокет для www.mydomain.com. Таким образом, мое приложение в социальной сети может отправлять сообщения клиентам.
Традиционно, используя только HTTP-запросы, я увеличивал масштаб, добавляя второй сервер и балансировщик нагрузки перед двумя веб-серверами.
С веб-сокетами соединение должно быть напрямую с веб-сервером, а не с балансировщиками нагрузки, потому что если машина имеет физический предел, скажем, 64 КБ открытых портов, и клиенты подключались к балансировщику нагрузки, то я не мог поддерживать более 64к одновременных пользователей.
Итак, как мне -
заставить клиента подключаться напрямую к веб-серверу (а не к балансировщику нагрузки) при загрузке страницы? Могу ли я просто загружать JavaScript из узла, а балансировщики нагрузки (или что-то еще) случайным образом изменяют URL-адрес сценария каждый раз, когда страница изначально запрашивается?
справиться с волнистым началом? Браузер заметит, что соединение закрывается, когда веб-сервер завершает работу. Я могу написать код JavaScript, чтобы попытаться повторно открыть соединение, но узел на какое-то время исчезнет. Итак, я думаю, мне придется вернуться к балансировщику нагрузки, чтобы запросить адрес следующего узла, который будет использоваться?
Мне было интересно узнать, как балансировщики нагрузки отправляют перенаправление при первоначальном запросе, так что браузер изначально запрашивает
www.mydomain.comи перенаправляется наwww34.mydomain.com. Это работает достаточно хорошо, пока узел не выйдет из строя - а сайты вроде Facebook этого не делают. Как они это делают?