Мы размещаем около 150 сайтов (возможно, масштабирующихся до 300+), которые мы планируем перевести на node.js
. Большинство сайтов имеют довольно низкий трафик < 1mil просмотров страниц в месяц.Должен ли каждый веб-сайт быть собственным процессом `node.js`
Должен ли каждый веб-сайт быть собственным процессом node.js, или мы должны обслуживать все веб-сайты, используя тот же процесс node.js (или небольшой набор процессов с балансировкой нагрузки). Существует ли технический предел или разумный предел числа процессов узлов на сервере?
Процесс на сайте: Чувства неэффективны, но я не знаю, действительно ли это неэффективно. Обеспечит, чтобы один багги-сайт не влиял на другие сайты.
Процесс на ядро / небольшой набор процессов: Вероятно более высокая производительность, но что происходит, когда мне нужно обновлять кодовую базу сайтов, не будут ли они удалены по другим сайтам? Кроме того, ошибки кода на одном сайте влияют на другие сайты.
В идеале, я бы предпочел один процесс на сайт, чтобы мы могли размещать все сайты с каждого рабочего сервера. Таким образом, при увеличении нагрузки мы можем просто развернуть еще один идентичный рабочий сервер и сбалансировать нагрузку между ними без необходимости произвольно сказать, что SiteA переходит на ServerA, а SiteB переходит на ServerB. Любые node.js
гуру доступны, чтобы предложить некоторую мудрость?
Все статические запросы на файлы будут обрабатываться, вероятно, Nginx или что-то вроде Varnish.
Цените подробный комментарий. Если это поможет прояснить, что эти приложения не должны обладать высокой репутацией. Причина одного процесса на сайте не в производительности, это решение таких проблем, как отказоустойчивость и обновление кода, не затрагивая другие сайты. Я бы предпочел запустить несколько процессов на ядро, как вы предлагаете, но как я могу справиться со своими двумя проблемами, когда я это делаю? Кроме того, план состоит в том, чтобы все статические запросы файлов проходили через Nginx, Varnish или что-то в этом роде. Узел не должен обслуживать их. – Nucleon
Во-первых, хорошая обработка ошибок и таковая заданная. Но также, в качестве резервной копии вы можете изучить такие модули: https://github.com/nodejitsu/forever или это, если вам нравится идея процесса для данного сайта: https://github.com/haraldrudell/ nodegod – ChrisCM
«Причина одного процесса на сайте не в производительности, это решение таких проблем, как отказоустойчивость и обновление кода, не затрагивая другие сайты». @ChrisCM, я действительно заинтересован в этом. – fakewaffle