@m5xim

10к websoket соединений,нужны ли кластеры?

Здравствуйте.Планируется проект на node js,будет использован чистый websoket без оберток на стороне клиента и сервера.(сервер не будет отдавать статику,ничем другим кроме работы с ws и бд заниматься не будет).
При обычном подходе,без кластеров,выдержит ли нагрузку в 10к соединений сервер?
Если предположить что клиенты будут с переменной активностью,т.е. некоторое время пакеты идут каждую секунду(к примеру набор текста-нажатие клавиш),некоторое время простой.
Конечно имеет значение и конфигурация сервера,но если для примера взять нормальный сервер, с 16gb озу,Intel Core i7,не будет ли подтормаживаний при пиковой нагрузке?Скорость важна.
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
нагрузку в 10к соединений сервер?


10К соединений не создают практически никакой нагрузки. Это же просто соединения и они просто висят. Вот если мы будем оценивать примерный объем данных и т.д. которые будут проходить между клиентом и сервером в секунду... и в целом что с этими данными будет происходить.... В целом для 100% ответа на ваш вопрос придумали такой вид тестирования как нагрузочное. Если у вас такие жесткие нефункциональные требования - проще потратить вечерок и написать хотя бы примитивный нагрузочный тест и выяснить на практике.

Горизонтальное масштабирование стоит закладывать (хотя бы минимально что бы можно было потом быстро подправить).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Для начала узнайте что нода работает в один поток, поэтому хоть intel i10, лучше от этого не будет.
С учетом того что вы спрашиваете, вряд ли у вас достаточно опыта.
Значит у вас будет суровый nodejs сервер, который будет пожирать память лопатой и выдержит в лучшем случае пару тысяч соединений на одном воркере, если не совсем плохо накодить.

Так что без кластера даже начинать не надо, а писать уже с расчетом на использование нескольких параллельных процессов.

Однако с другой стороны вряд ли вы вообще имеете/будете иметь такую нагрузку, так что можно попробовать без кластера. Нет смысла тратить силы на кластер, если в итоге вы получите пару сотен коннектов.
Поэтому для начала можно попробовать на одном процессе погонять. А уж если ВНЕЗАПНО будет такая нагрузка, то можно будет уже переписать на "чистовую".
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы