@AndeDark

Детали работы NodeJS?

Здравствуйте! Хочу задать некоторые уточняющие вопросы касательно NodeJS, которые как мне кажется слабо описаны на ресурсах которые я изучал.
Во многих источниках говорится о том, что NodeJS не подходит для сложных вычислений, ведь он однопоточный и запросы выполняются последовательно
Я создал простейший сервер на Node и написал ендпоинт, который выполняет запрос примерно 10 секунд (цикл). Далее я произвел 10 последовательных запросов через Postman, и действительно, каждый следущий запрос начинал выполнение только после того как предыдущий отдал ответ.

  1. Правильно ли я понимаю что в таком случае, если время выполнение одного эндпоинта будет примерно 300мс, и к серверу одновременно обратятся 700 пользователей, то для последнего пользователя время ожидание составит критические 210 000мс ?
  2. Так же я слышал, что плюсом NodeJS является возможность поддержки большого количества одновременных соединений, что тогда это означает и почему является плюсом, если ответ для последнего человека из прошлого вопроса все равно будет очень долгим
  3. Еще одно утверждение с которым я столкнулся, это то что libuv позволяет делать много операций ввода-вывода одновременно, как это работает если NodeJS все равно обрабатывает запросы последовательно ?


Большое спасибо!
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 3
Alexandroppolus
@Alexandroppolus
кодир
Во многих источниках говорится о том, что NodeJS не подходит для сложных вычислений, ведь он однопоточный

Либо это очень старые источники, либо их авторы мудаки. Многопоточность в ноде есть с 10 версии.
Ответ написан
Комментировать
Kentavr16
@Kentavr16
long cold winter
Если вкратце и как я понимаю.
нет,неправильно. Нода работает с джаваскриптом, но это не значит что написана нода на джС. Нужно уточнить,на чем именно, кажется видел с++. В конечном итоге стандартный сервер ноды поддерживает программно уж точно десятки тысяч подключений. Скорее упрешься в потолок железа. Для более подробного понимания ознакомься с протоколами интернета и прочей его изнанкой -tcp ip, порты, сокеты серверов и прочее.
Итак,еще раз - джаваскрипт однопоточный,нода нет.
Ответ написан
Комментировать
@qwazimord
Интроверт
Я создал простейший сервер на Node

т.е. все свои выводы вы сделали использовав примерно 2-3% возможностей Node.
Посмотрите это видео - оно поможет лучше понять https://www.youtube.com/watch?v=CubdrUt-G3c
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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