1

Я разрабатываю крупномасштабную систему (MEAN Stack + ElasticSearch + RabbitMQ), Существует множество проектов и очередей nodejs, работающих вместе. Я несколько вопросов.Как настроить, запустить, контролировать и управлять несколькими службами разных узлов?

  1. Когда я хочу запустить и протестировать всю систему, мне нужно открыть много окон терминала для запуска каждого проекта. Как я запускаю их сразу с легкостью мониторинга.

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

  3. Как легко конфигурировать, запускать, контролировать и управлять всей системой. Например, я хочу знать, сколько машин работает над проектом. Или когда-нибудь я хочу изменить имя очереди сообщений или IP-адрес сразу, я не хочу идти на каждую машину как на проект, чтобы изменить их один свидание один

Извини за мой плохой Грамм, Feel освободить редактировать. Спасибо заранее.

+0

Большие мета вопросы, как это обычно закрываются быстро здесь (с некоторыми исключениями). Если вы хотите получить более успешный вопрос, я бы рекомендовал только задать один вопрос одновременно и попытаться быть настолько конкретным, насколько вы можете о том, что вы просите. –

ответ

0
  1. Вы можете написать проект узла, который запускает все остальные с соответствующими аргументами, используя child_process.
  2. Вы можете рассмотреть такой инструмент, как Puppet или Chef.
  3. То же, что и # 2.
2

Посмотрите на PM2.
Я использую его для разработки и в производстве

С помощью этого инструмента вы можете определить простой файл JSON, который определяет вашу среду.

pm2_services.json

[{ 
    "name"  : "WORKER", 
    "script"  : "worker.js", 
    "instances" : "3", 
    "port"  : 3002, 
    "node-args" : "A_CONFIG_KEY" 
}, { 
    "name"  : "BACKEND", 
    "script"  : "backend.js", 
    "instances" : "3", 
    "port"  : 3000, 
    "node-args" : "A_CONFIG_KEY" 
}, { 
    "name"  : "FRONTEND", 
    "script"  : "frontend.js", 
    "instances" : "3", 
    "port"  : 3001, 
    "node-args" : "A_CONFIG_KEY" 
}] 

Затем запустите pm2 start pm2_services.json

Соответствующие команды:

  • pm2 logs показать логи всех услуг
  • pm2 ls показывают бегущая
  • pm2 monit показывают текущее состояние процессора и
  • pm2 start FRONTEND памяти для запуска службы
  • pm2 stop FRONTEND, чтобы остановить службу

ПРИМЕЧАНИЕ:

Будьте осторожны с часовой функцией рт2.
В моем случае мой процессор подпрыгивает до 100%.

Чтобы посмотреть много файлов для изменения, я использую node-dev.
А вот решение ти использовать его с PM2

[{ 
    "name"  : "WORKER", 
    "script"  : "worker.js", 
    "instances" : 1, 
    "watch"  : false, 
    "exec_interpreter" : "node-dev", 
    "exec_mode" : "fork_mode" 
}] 
Смежные вопросы