В чем разница между разными способами выполнения и разделения кода в nodejs?

Объясните на конкретных примерах, разницу того, что называют "разделением выполнения кода". То есть, когда говорят, что разделив процессы, повысишь быстродействие приложения. Но в моем понимании, разделение ограничивается разделением на ядра процессора. Но в ноде есть разделение на child_process, на какой-то cluster. Как именно разделяет тот или иной способ? в чем разница?

Если Вы отвечаете на этот вопрос, то скорее всего уже хорошо разбираетесь в ноде.
Поэтому у меня просьба, объясните о разделении так, как-будто Вы себе из далекого прошлого
объясняете. У меня вообще никаких знаний, кроме как очень скудного хелпа нет. Целый день читаю
гугл и вроде многое понял, но основное так и осталось непонятом. В ру сегменте нет статей, которые были бы насквозь пропитаны опытом разработки, все что я читал, больше похожи на пересказ и конспектирование скудной документации, на какую-то личную памятку, нежели исчерпывающее руководство.
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
@apapacy
Существенным ограничением node.js является то что движок JavaScript в любой момент времени может выполнять ровно один скрипт или часть скрипта, если в скрипте используются функции обратного вызова или промисы.

Если на сервере доступно несколько ядер то можно запустить кластер node.js. Проще всего это сделать при помощи PM2 см. pm2.keymetrics.io/docs/usage/cluster-mode При этом практически не придется делать изменения в приложении. За одним исключением. Нельзя использовать глобальное состояние (например значение переменных которые определены на уровне модуля, подписку на сообщения и т.п.) т.к. это состояние будет у каждого экземпляра свое. При необходимости для синхронизации глобального состояния дополнительно приходится использовать как правило redis-сервер.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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