使用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都被收集方便查错。

原文地址:https://www.cnblogs.com/ling-yu-amen/p/10593419.html

时间: 2024-10-03 17:26:31

使用pm2来保证Spring Boot应用稳定运行的相关文章

spring boot项目后台运行

spring boot项目后台运行 Spring Boot应用的几种运行方式: (1)运行Spring Boot的应用主类 (2)使用Maven的Spring Boot插件mvn spring-boot:run来运行 (3)打成jar包后,使用java -jar运行 Linux/Unix: nohup java -jar XXX.jar & 这个命令就可以实现后台运行. 原文地址:https://www.cnblogs.com/heqiyoujing/p/9457138.html

通过监控线程状态来保证socket服务器的稳定运行

云平台中使用的socket服务器是我们自己定义一套通信协议,并通过C#实现的一个socket服务. 该服务目前是和web服务一起运行在IIS容器中,通过启动一个永不退出的新线程来监听端口. 在开发的初期,由于服务内一些消息的异常未进行捕获,例如客户端发来的消息格式不对.试图去关闭一个已经被释放的连接 等操作,会导致监听线程意外退出. 后来随着系统的使用这些问题被一一修复,socket服务就稳定了很多,可是持续一个多周以后,socket服务还是会偶尔挂掉,查看系统日志没有发现任何系统异常.到网上查

spring boot 整合mapreduce运行的ClassNotFoundException

问题 一个wordcount运行总是报错 java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.hadoop.mapreducedemo1.mapreducedemo.mapper.MyMapperTask 网上最常见的解决方案就是 job.setJarByClass(Main.class); //job.setJar("/root/user/mapreducedemo-0.0.1-SNAPSHOT.jar

深入学习微框架:Spring Boot

由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 多年以来,Spring IO平台饱受非议的一点就是大量的XML配置以及复杂的依赖管理.在去年的SpringOne 2GX会议上,Pivotal的CTO Adrian Colyer回应了这些批评,并且

[转] 使用Spring Boot和Gradle创建项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 创建项目 你可以通过 Spring I

Spring Boot教程 - 1. 简介

一.导览 本文主要介绍以下几部分: 1. 什么是Spring Boot? 2. 为什么使用Spring Boot? 3. Spring Boot提供哪些功能? 4. 如何使用Spring Boot? 5. Spring Boot有哪些不足? 二.什么是Spring Boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. 该框架使用了特定的方式(继承starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义

深入学习微框架:Spring Boot(转)

转:http://www.infoq.com/cn/articles/microframeworks1-spring-boot/ 相关参考: https://spring.io/guides/gs/spring-boot/ http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ https://github.com/spring-projects/spring-boot 深入学习微框架:Sprin

开发者测试-采用精准测试工具对Spring Boot应用进行测试

简介:本文主要介绍把现今主流的springboot框架项目和精准测试工具进行结合和应用,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能,达到对项目质量的保证. 本次环境搭建分为基础环境准备.springboot环境搭建.精准测试环境搭建.精准测试与springboot环境对接等一整套完整的配置过程,用户可以通过下图中的流程图确认自己所部署过程中进行到的阶段点,从而排查部署中可能遇见的问题. 一,Spring Boot配置流程 1,使用工具 1, E

Spring Boot 以 jar 包方式运行在后台

spring-boot jar 包方式启动: 首先,为了防止和常用的 Tomcat 8080 端口冲突,将 Spring-boot 项目的端口号设置为 9090. 具体方法:在 application.properties 文件里写 server.port=9090. 使用 maven 命令:clean package 打包. 放到服务器上一个合适的位置. 使用 Java -jar spring-boot01-1.0-SNAPSHOT.jar 命令,启动 jar 包. 然后,在浏览器输入 htt