Сервер node.js с socket.io, обслуживающий 50000 одновременных клиентов
Мы разрабатываем элемент управления Javascript, который должен постоянно подключаться к серверу для получения обновлений анимации.
Мы планируем разместить этот материал в облаке Amazon.
Сценарий такой: сервер подключается к очереди activemq, ожидая обновлений, при каждом обновлении он передает его всем подключенным клиентам.
Можно ли вообще справиться с такой нагрузкой с помощью node.js + socket.io? Сможет ли один сервер node.js справиться с такой нагрузкой? Как организовать быстрый транспорт между разными узлами, если нам придется использовать более одного узла?
1 ответ
Сможет ли отдельный сервер node.js справиться с такой нагрузкой?.. Как организовать быструю передачу между разными узлами, если нам придется использовать более одного узла
Вы говорите, что планируете разместить на Amazon. Итак, во-первых, ничего не должно быть ограничено для одного сервера. Машины Amazon просто "исчезнут", вы должны предположить, что собираетесь использовать несколько компьютеров.
... обработка 50 тыс. одновременных клиентов
Итак, для начала, 50 тыс. Соединений для одного ящика - это очень большое число. Вот очень подробное сообщение в блоге, в котором обсуждается "добраться до 10 тыс." С помощью node.js+socket.io.
Вот очень убедительная цитата:
казалось, что 10000 клиентов просто нуждаются в большем количестве сериализации, чем мой сервер смог обработать.
Таким образом, ключевым компонентом для получения 50k будет объем работы, необходимый для передачи данных по проводам.
Как организовать быстрый транспорт между различными узлами, если нам придется использовать более одного узла.
Это сообщение в блоге является первым из 3. Когда вы закончите первое, прочитайте два других. Это должно указать вам в правильном направлении.