Можно ли запустить 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