Можно ли запустить Sailes.js на кластере узлов?

В настоящее время я запускаю экспресс-сервер, используя настройку кластера node js vanilla, как показано здесь:

http://rowanmanning.com/posts/node-cluster-and-express/

Я хотел бы перевести сервер на паруса.js, и мне интересно, знает ли кто-нибудь, как настроить паруса для поддержки кластера узлов (без прокси, только простой кластер).

TX,

Шон.


person born2net    schedule 08.10.2014    source источник


Ответы (2)


Во-первых, если вы хотите использовать сеансы, вам нужно использовать хранилище сеансов. В противном случае сессия не будет разделена между экземплярами вашего приложения.

Тогда самый простой способ — использовать что-то вроде PM2, которое можно найти здесь: https://github.com/Unitech/pm2

Вам не нужно вносить изменения в ваши файлы app.js - они должны быть написаны как стандартное некластеризованное приложение для парусов. PM2 сделает свою работу.

Просто запустите приложение с помощью pm2 start app.js -i x, где x — количество экземпляров, или используйте pm2 start app.js -i max, который запустит экземпляры, равные количеству процессоров или потоков процессора.

PM2 великолепен и очень стабилен, у него есть много функций для бесперебойной работы в продакшене, однако у него есть некоторые недостатки в разработке. Если у вас когда-нибудь возникнет проблема с «уже используемым портом» после остановки или даже удаления приложения, которое его использовало, вам придется использовать pm2 kill, который убьет ВСЕ ваши приложения. Кроме этого - это просто здорово - с некоторыми дополнительными инструментами мониторинга.

person Jarema    schedule 09.10.2014
comment
спасибо, поиграю... Я не использую сеансы, так что все в порядке! - person born2net; 10.10.2014

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

Для этого вам нужно использовать app.js файл, например:

pm2 start app.js

Если вы хотите запустить максимальное количество доступных экземпляров:

pm2 start app.js -i max

дополнительные сведения см. в документации: https://github.com/Unitech/pm2

person Kiko Beats    schedule 09.10.2014