Как выдерживать большую нагрузку на сервер node.js?

Добрый день. У меня есть проект, на котором при рекламе онлайн достигает до 4500. Столкнулись с такой проблемой, что сервер на node.js + socket.io просто не выдерживает такой онлайн и начинает лагать, не успевает принимать всех клиентов и все такое. Думаем переписать сервер с использованием cluster, будет ли это верным решением?
Характеристики тачки:
CPU:XEON 5520 4Core
HDD:60Gb
RAM:10Gb
NET:100Mbit \ unmetered
  • Вопрос задан
  • 2956 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Если у Вас уже все написано, то не нужно переписывать, просто добавьте cluster, тут пример: stackoverflow.com/questions/18310635/scaling-socke...
Но вообще, на будущее, для таких вещей не нужен ни cluster, ни socket.io, они только мешают и не решают ни каких дополнительных проблем, на сервере лучше делать столько процессов, сколько ядер и на каждом открывать отдельный порт, например: 80, 81, 82... Отключать все балансировщики, и программные и аппаратные, не пропускать через nginx и через cluster, это тоже балансировщики, по сути. А выбирать порт рандомно на клиенте. Для такой машинки как ваша при использовании просто обычных Websocket'ов, без всяких библиотек-оберток как на клиенте, так и на сервере, можно держать без проблем до 150.000 соединений.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@lyeskin
Дайте знатокам хар-ки сервера. А то может быть вам вертикальное масштабирование нужно, а не горизонтальное.
Ответ написан
MDiMaI666
@MDiMaI666
Талантливый программист
Или написать на нормальный компилируемый язык c# (ASP.NET, NET core) например, и не WebSocket, а гонять простые байты через tcp/udp/socket.
И я знаю что вопрос написан три года назад, на будущее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы