Объясните на пальцах о процессах и кластерах Node.js
Не до конца понимаю как запускаются приложения на Node.
Если скажем запустить app1.js и app2.js к примеру через какой-нибудь process manager (pm2 или strongloop PM) ну или просто в консоли node app1.js и node app2.js что получается? Это будут создаваться 2 отдельных процесса ноды в ОС, где один процесс работает с app1, а второй процесс с app2? Или же это процессы app1 и app2 внутри самой ноды? И по кластеризации к примеру в тех же самых pm2 или strongloop PM, в документации написано что типа на каждое ядро вешается по одному процессу ноды в ОС. Т.е. я не могу понять что же такое процесс и что такое кластер? Это все на уровне ОС размножается или же что-то на уровне ноды? Можете как-то разъяснить? |
хелло от бивиса и батхеда )
https://nodejs.org/api/cluster.html A single instance of Node.js runs in a single thread. To take advantage of multi-core systems, the user will sometimes want to launch a cluster of Node.js processes to handle the load. и т.д. и т.п. |
Цитата:
Вот почему у большинства мания в документацию тыкать, причем которая только косвенно относится к вопросу, аж бесит уже серьезно. Вы когда к врачу приходите на прием, Вам плохо очень, нос заложило, температура, на ногах еле держитесь, просите помощи,а он вам ссылку дает на медицинскую энциклопедию, и говорит такой "там по своим симптомам диагноз выберите, а лечение там прописано" классно бы было? Зачем мне модуль кластер? Я process manager'ы хочу использовать. Или Вы так тонко намекаете, что в менеджерах таже самое? Нет я понимаю, что и модуль кластер и манагеры работают по принципу родительский процесс создаёт дочерние. Короче спрашиваю совсем тупо, если через pm запустить 2 штуки app1 и 1 штуку app2, в диспетчера задач ОС будет висеть 3 процесса node.js или один? |
ну как тут ответить, можно сделать два, можно сделать один, )
|
Хорошо, что Вы врачом не стали, а в программисты пошли:D
|
ну вы запустите экземпляры скрипта ноды и посмотрите в системе какие у вас процессы добавились, а кластер - объединение нескольких однородных элементов, которое может рассматриваться как самостоятельная единица. Если к примеру рассматривать модуль cluster, то он создает дочерние процессы в ос (cluster.fork()), fork() — системный вызов, создающий новый процесс (потомок).
|
мне хватило знаний и опыта запустить диспетчер задач и выполнить три команды в консоли и вот он ответ =).
![]() |
Часовой пояс GMT +3, время: 05:11. |