使用pm2來保證Spring Boot應用穩定運行


Spring Boot開發web應用就像開發普通的java程序一般簡潔,因為其內嵌了web容易,啟動的時候只需要一條命令java -jar server.jar即可,非常方便。
但是由此而來的問題是萬一應用掛了怎么辦?

別擔心,有pm2進程管理工具可以幫到你。

PM2簡介

pm2原先是nodejs應用的進程管理工具,不過其良好的設計以及擴展性可以手動執行執行進程。

PM2安裝

1.安裝NodeJs

npm install pm2 -g

  

PM2基本命令

  • pm2 list 查看所有被PM2管理的進程列表
  • pm2 start xxx 啟動一個應用
  • pm2 stop xxx 停止一個應用
  • pm2 restart xxx 重啟一個應用
  • pm2 describe xxx 查看應用詳情
  • pm2 startup, pm2 save 兩條命令,用來保證服務器啟動時,pm2管理的程序自動運行

Java程序處理

在jar的同級目錄新建應用啟動配置文件,如pm2.json,內容如下:

{
    "name": "my-server",
    "script": "/usr/bin/java",
    "args": [
        "-jar",
        "server.jar"
    ],
    "exec_interpreter": "",
    "exec_mode": "fork"
}

說明如下:

  • name 進程名稱(顯示在pm2 list命令中)
  • script 執行進程名稱,如果需要執行PHP腳本則填寫php解釋器的路徑,本文為java
  • args 傳給執行進程的參數,多個參數以數組單元分割
  • exec_interpreter NodeJs解析器,本文不適用
  • exec_mode 執行模式[cluster|fork]這個針對NodeJs應用的配置,非NodeJs應用統一fork

配置文件完成后,使用

pm2 start pm2.json

  即可看到應用被啟動

日志管理

日志路徑在~/.pm2/logsstdoutstderr被分開存放,程序中的所有stdoutstderr都被收集方便查錯。

cat project-cogrowth-api.json

{
    "name": "cogrowth-api",
    "script": "java",
    "args": [
        "-Xms64m",
        "-Xmx512m",
        "-Dspring.profiles.active=pub",
        "-jar",
        "cogrowth-api-1.0.jar",
    ],
    "exec_interpreter": "",
    "exec_mode": "fork"
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM