1

我正在開發一個大型系統(MEAN Stack + ElasticSearch + RabbitMQ), 有許多不同的nodejs項目和隊列一起工作。 我有幾個問題。如何配置,運行,監視和管理多個不同的節點服務?

  1. 當我想運行和測試整個系統時,我必須打開很多終端窗口來運行每個項目。我如何一次運行它們以便於監控。

  2. 當我想在多臺機器上運行同一個項目時,我如何輕鬆配置所有這些項目,因爲有時需要花費太多時間來移動並配置它們。

  3. 如何輕鬆配置,運行,監控和管理整個系統。例如,我想知道有多少臺機器正在運行一個項目。或有時我想一次更改消息隊列名稱或IP地址,我不想去每臺機器上都項目,以改變他們一個輪空一個

對不起,我的壞文法,隨意的編輯。 在此先感謝。

+0

大這樣的問題元通常能很快在這裏關閉(有少數例外)。如果你想有一個更成功的問題,我建議一次只問一個問題,並儘可能詳細地描述你所問的問題。 –

回答

0
  1. 您可以使用child_process編寫一個Node項目,其中使用適當的參數啓動所有其他項目。
  2. 你可以考慮像傀儡或廚師這樣的工具。
  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 monit顯示當前CPU和內存狀態
  • pm2 start FRONTEND啓動服務
  • pm2 stop FRONTEND停止服務

注:

小心PM2的手錶功能。
在我的情況下,我的CPU跳到永久100%。

要觀看許多文件的更改我使用node-dev
而這裏的解決方案TI利用它與PM2

[{ 
    "name"  : "WORKER", 
    "script"  : "worker.js", 
    "instances" : 1, 
    "watch"  : false, 
    "exec_interpreter" : "node-dev", 
    "exec_mode" : "fork_mode" 
}] 
相關問題