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

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

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

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

TX,

Шон.

2 ответа

Решение

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

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

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

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

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

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

Для этого вы должны использовать app.js файл, как:

pm2 start app.js

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

pm2 start app.js -i max

проверьте документацию для получения дополнительной информации: https://github.com/Unitech/pm2

Другие вопросы по тегам