pm2運行json文件啓動node service擁有獨立端口集羣

前情提要

pm2可以通過json文件部署單個node服務,也可部署多個node服務集羣
"instances": 4,即可以,但是部署的node service4個節點使用的是一個端口實現的是高可用和分佈式計算功能。
但是如果想實現每個節點都擁有獨立的端口則不可這麼書寫。

pm2運行json文件啓動node service擁有獨立端口集羣

我們可以預定義一個配置文件,然後制定運行這個配置文件,比如我們定義一個文件app.json,內容如下:

[root@jenkins-master linux]# cat app.json 
{
  "apps":[
    {
      "name": "sourcepath_Jenvironment",
      "cwd": "/data/source/sourcepath_Jenvironment/publish/",
      "script": "/data/source/sourcepath_Jenvironment/publish/service/server.js",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/data/pm2-log/errlogs/sourcepath_Jenvironment-err.log",
      "out_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment-out.log",
      "pid_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment.pid",
      "instances": 1,
      "max_restarts": 50,
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
    }
  ]
}

pm2運行json文件啓動node service擁有獨立端口集羣

apps:json結構,apps是一個數組,每一個數組成員就是對應一個pm2中運行的應用
name:應用程序名稱
cwd:應用程序所在的目錄
script:應用程序的腳本路徑
log_date_format:
error_file:自定義應用程序的錯誤日誌文件
out_file:自定義應用程序日誌文件
pid_file:自定義應用程序的pid文件
instances:
min_uptime:最小運行時間,這裏設置的是60s即如果應用程序在60s內退出,pm2會認爲程序異常退出,此時觸發重啓max_restarts設置數量
max_restarts:設置應用程序異常退出重啓的次數,默認15次(從0開始計數)
cron_restart:定時啓動,解決重啓能解決的問題
watch:是否啓用監控模式,默認是false。如果設置成true,當應用程序變動時,pm2會自動重載。這裏也可以設置你要監控的文件。
merge_logs:
exec_interpreter:應用程序的腳本類型,這裏使用的shell,默認是nodejs
exec_mode:應用程序啓動模式,這裏設置的是cluster_mode(集羣),默認是fork
autorestart:啓用/禁用應用程序崩潰或退出時自動重啓
vizion:啓用/禁用vizion特性(版本控制)

**args:執行腳本文件的參數域**

pm2運行json文件啓動node service擁有獨立端口集羣


{
  "apps":[
    {
      "name": "sourcepath_Jenvironment",
      "cwd": "/data/source/sourcepath_Jenvironment/publish/",
      "script": "/data/source/sourcepath_Jenvironment/publish/service/server.js",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/data/pm2-log/errlogs/sourcepath_Jenvironment-err.log",
      "out_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment-out.log",
      "pid_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment.pid",
      "instances": 1,
      "max_restarts": 50,
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
    },    {
      "name": "sourcepath_Jenvironment2",
      "cwd": "/data/source/sourcepath_Jenvironment/publish/",
      "script": "/data/source/sourcepath_Jenvironment/publish/service/server.js",
            "args": "'debug' '12345'",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/data/pm2-log/errlogs/sourcepath_Jenvironment2-err.log",
      "out_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment2-out.log",
      "pid_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment2.pid",
      "instances": 1,
      "max_restarts": 50,
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
    },    {
      "name": "sourcepath_Jenvironment3",
      "cwd": "/data/source/sourcepath_Jenvironment/publish/",
      "script": "/data/source/sourcepath_Jenvironment/publish/service/server.js",
            "args": "'debug' '12344'",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/data/pm2-log/errlogs/sourcepath_Jenvironment3-err.log",
      "out_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment3-out.log",
      "pid_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment3.pid",
      "instances": 1,
      "max_restarts": 50,
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
    },    {
      "name": "sourcepath_Jenvironment4",
      "cwd": "/data/source/sourcepath_Jenvironment/publish/",
      "script": "/data/source/sourcepath_Jenvironment/publish/service/server.js",
            "args": "'debug' '12343'",
      "log_date_format": "YYYY-MM-DD HH:mm Z",
      "error_file": "/data/pm2-log/errlogs/sourcepath_Jenvironment4-err.log",
      "out_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment4-out.log",
      "pid_file": "/data/pm2-log/outlogs/sourcepath_Jenvironment4.pid",
      "instances": 1,
      "max_restarts": 50,
      "watch": false,
      "merge_logs": true,
      "exec_interpreter": "node",
      "exec_mode": "fork",
    }
  ]
 }

pm2運行json文件啓動node service擁有獨立端口集羣

pm2運行json文件啓動node service擁有獨立端口集羣

"args": "'debug' '12344'"                 args:執行腳本文件的參數域,如果不寫的話會按照原來單個node service的方式調用config.js文件裏面的配置。

pm2運行json文件啓動node service擁有獨立端口集羣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章