PM2 介绍

简介: 【10月更文挑战第11天】

PM2 是一个流行的 Node.js 应用的进程管理器,它提供了许多功能,包括进程监控、自动重启、日志管理以及负载均衡等。以下是 PM2 进行进程管理的介绍、原理以及在应用中的使用说明:

介绍

PM2 是一个生产环境下的 Node.js 应用的进程管理器。它允许开发者管理和保持应用程序在线,即使在遇到崩溃或系统更新时也不会中断服务。PM2 提供了命令行工具,通过它可以启动、重启、停止和监控应用程序。

原理

  1. 进程守护: PM2 能够将 Node.js 应用程序作为守护进程运行,这意味着即使关闭了终端窗口,应用程序也会继续在后台运行。
  2. 自动重启: 当应用程序崩溃或停止响应时,PM2 能够自动重启它,确保服务的持续可用性。
  3. 日志管理: PM2 会记录应用程序的标准输出和错误输出,并将它们保存在日志文件中,方便开发者进行调试和监控。
  4. 负载均衡: PM2 支持多进程,可以按照配置启动多个应用程序实例,并且能够在这些实例之间实现负载均衡。
  5. 零停机重载: PM2 提供了零停机部署的功能,可以在不中断服务的情况下重新加载应用程序。
    以下是 PM2 的一些关键原理:
  • Cluster Mode: PM2 使用 Node.js 的 cluster 模块来利用多核 CPU 的能力,通过创建多个工作进程来提高应用程序的性能和可靠性。
  • 配置文件: PM2 允许通过配置文件来管理应用程序的设置,这使得在不同环境中部署和维护应用程序变得更加容易。

    应用

    在应用 PM2 时,以下是一些常见的步骤和用法:
  1. 安装 PM2:
    npm install pm2@latest -g
    
  2. 启动应用程序:
    pm2 start app.js
    
  3. 查看应用程序列表:
    pm2 list
    
  4. 监控应用程序:
    pm2 monit
    
  5. 日志管理:
    pm2 logs
    
  6. 零停机重载:
    pm2 reload app.js
    
  7. 停止应用程序:
    pm2 stop app.js
    
  8. 删除应用程序:
    pm2 delete app.js
    
  9. 使用配置文件:
    创建一个 ecosystem.config.js 文件来定义应用程序的配置,然后使用以下命令启动:
    pm2 start ecosystem.config.js
    
    通过使用 PM2,开发者可以简化 Node.js 应用的生产部署和维护工作,确保应用的高可用性和稳定性。

PM2 提供了自动重启功能,它可以在应用程序崩溃或者停止运行时自动重新启动应用程序。以下是配置 PM2 自动重启策略的步骤:

1. 使用命令行选项

当使用 PM2 启动应用程序时,可以指定一些命令行选项来配置自动重启策略:

  • --watch:监控应用程序的文件变动,一旦文件被修改,则自动重启应用。
  • --restart-delay:设置重启前的延迟时间(以毫秒为单位)。
    例如:
    pm2 start app.js --watch --restart-delay=5000
    
    这个命令将启动 app.js 应用程序,并且如果文件发生变化,它将在 5000 毫秒后重启。

    2. 使用配置文件

    创建一个 PM2 配置文件(通常命名为 ecosystem.config.js),可以更灵活地配置自动重启策略。以下是配置文件的一个例子:
    module.exports = {
         
    apps : [{
         
      name: 'app-name',
      script: 'app.js',
      // 自动重启配置
      autorestart: true, // 默认为 true,即启用自动重启
      watch: true, // 启用文件监控
      ignore_watch: ['node_modules', 'logs'], // 忽略监控的文件夹或文件
      watch_options: {
         
        followSymlinks: false,
        usePolling: true,
        interval: 1000,
        binaryInterval: 3000
      },
      restart_delay: 5000 // 重启前的延迟时间(毫秒)
    }]
    };
    
    在这个配置文件中:
  • autorestart: 启用或禁用自动重启功能。
  • watch: 启用文件监控,当文件变动时自动重启应用。
  • ignore_watch: 指定不希望被监控的文件夹或文件。
  • watch_options: 更详细的文件监控配置,例如使用轮询(usePolling)和监控间隔(interval)。
  • restart_delay: 设置重启前的延迟时间。

    3. 应用配置文件

    使用配置文件启动应用程序:
    pm2 start ecosystem.config.js
    
    这样,PM2 就会根据 ecosystem.config.js 文件中的配置来管理应用程序,包括自动重启策略。

    注意事项

  • 文件监控可能会消耗额外的系统资源,特别是在大型项目中。
  • 在生产环境中,频繁的重启可能会影响用户体验,因此建议谨慎使用文件监控和自动重启功能。
  • 如果使用版本控制系统(如 git),请确保监控列表中不包括 .git 目录,以避免不必要的重启。
    通过以上步骤,你可以为你的 Node.js 应用程序配置 PM2 的自动重启策略,以确保应用的持续可用性。
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
9月前
|
JavaScript 安全 前端开发
Vue2 和 Vue3 中 Vue Router 用法与原理详解
本文深入解析 Vue Router 在 Vue2(v3)与 Vue3(v4)中的核心用法与原理,涵盖安装配置、声明式与编程式导航、路由守卫、懒加载、动态路由及性能优化。对比版本差异,揭示其基于响应式系统实现的路由匹配与视图更新机制,助力开发者构建高效、可维护的单页应用。
842 2
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
2567 0
|
监控 安全 Java
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
|
存储 数据可视化 数据挖掘
【docker】使用docker安装部署elasticsearch+Kibana(上)
【docker】使用docker安装部署elasticsearch+Kibana
1347 0
|
9月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
58581 11
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
3749 11
|
资源调度 JavaScript 前端开发
搭建和部署nuxt项目
【8月更文挑战第4天】