Neckvik, Да, через балансировщик(и) проходит весь трафик, и он выступает мостом между серверами и пользователями. На нем можно создавать разные правила, в зависимости откуда, какой и куда пользователь ходит. Балансировщик также может снижать нагрузку на серверы, путем отдачи статики, кеширования контента, перенаправления на другие ресурсы (например по коду 301). В nginx также можно писать на языке lua правила перенаправлений и принятия решений. У меня один из серверов так раздает видео, по "защищенным" временным ссылкам.
Про нагрузку никто ничего не скажет, тем более, если пользователи онлайн. Нужно проводить нагрузочное тестирование, так как нагрузка бывает совершенно разная, но 500к одновременных коннектов - неплохое начало! Рекомендую посмотреть на jmeter, в нем написать профиль клиента, и через него запустить нагрузочное тестирование. Также стоит посмотреть еще и на grinder, как инструмент тестирования. Оба инструмента могут работать в кластерной конфигурации, когда тесты запускаются сразу с группы клиентов на один сервер. grinder.sourceforge.net https://jmeter.apache.org
Через роутер правилами распределять трафик на несколько балансировщиков. Но nginx и ha-proxy очень надежные штуки, на моей памяти они не падали. Вот каналы забивались под ддос, но не падали.
В общем на балансировщики трафик пускаем через аппаратные или программные роутеры.
Днс может раздавать только рандомно. И ему тогда нужно будет сказать, что какой-то сервер отвалился. Но это еще не все, многие провайдеры и сами операционки ккешируют запросы к dns. И вы получите ситуацию, когда на dns уже нет записи об ip, а клиенты еще сутки к нему ломятся, а то и больше. Ставьте или nginx, он все умеет, или ha-proxy. Которые будут перенаправлять запросы к вашим nodejs! Так все хорошие мальчики поступают. В nginx читаете про upstream и смотрите тамже примеры.
Neckvik, я немного дописал ответ. Ставьте nginx, который будет перебрасывать по нужным правилам на нужные адреса и шифровать трафик для всех сервисов и ip-адресов
Поддержу, чаще покупкой еще одного сервера проблему решить на порядок проще. Можно конечно взять дисковую полку с двумя sas или pci, но под нее скорее всего потребуется еще и адаптеры. Тогда половину полки в один сервер, вторую половину -в другой. Но думается, сервер будет на круг дешевле.
Хорошо, порробуйте на андроиде открыть серверный udp-сокет и прослушивать броадкаст-адрес. С сервера раз в секунду например посылайте броадкаст сообщения со своим ip-сервера
Владислав Винокуров, нет, нет, нет. Именно спрошу, что это за идеология? И почему у меня и практически у всех это работает на сотни-тысячи устройств, а у Вас не может?
Я знаю десятки протоколов, некоторые реализовывал лично, но за почти 30 лет практики предпочту http, и в очень редких случаях буду искать что-то особенное.
Anarchy, У меня такой на антресолях валяется, но для работы современных OS нужно минимум 4 гб памяти. Боюсь, что зря Вы его взяли....
Даже если и установите туда 10.6, то будут проблемы с браузером, сертификатами и прочей фигней. Поставьте лучше линукс туда.
Как я понимаю, команда долгомграющая, а пользователей много? И нужно видеть результаты выполнения?