Node.js 作为一种轻量的高效的 JavaScript 运行环境,越来越受到开发者的青睐。但是,在生产环境中使用 Node.js 时,我们也需要保证其高效稳定运行。而 PM2 则是一个用于部署、负载均衡和监控 Node.js 应用程序的工具,可以非常便捷地实现此功能。本文将介绍如何使用 PM2 与 Node.js 集成,以确保你的 Node.js 应用程序高效、稳定地运行。
PM2 简介
PM2 是一个 process manager,功能非常强大,包括自动负载均衡、0 秒停机重载、进程守护、内存和 CPU 自动监控、多进程部署等。使用 PM2 可以让我们更加方便地管理我们的 Node.js 应用程序。
PM2 集成 Node.js 的几种方式
方式一:npm 安装
使用 npm 安装 PM2 可以简单快捷地实现 PM2 与 Node.js 的集成。
全局安装 PM2:
$ npm install pm2 -g
使用 PM2 启动应用程序:
$ pm2 start app.js
方式二:通过配置文件启动
使用 pm2 配置文件可以更加高效地管理我们的应用程序。
创建 pm2 配置文件:
创建
pm2.config.js
文件,输入以下代码:// javascriptcn.com 代码示例 module.exports = { apps: [ { name: 'appName', script: './app.js', // Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/ args: '', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: { NODE_ENV: 'development' }, env_production: { NODE_ENV: 'production' } } ] };
配置文件中的内容可以根据具体需求进行修改。
使用 pm2 启动应用程序:
$ pm2 start pm2.config.js
方式三:通过代码启动
在代码中使用 pm2 启动应用程序可以更加自动化地实现 PM2 与 Node.js 的集成。
安装
pm2
、pm2-logrotate
和pm2-intercom
:$ npm install pm2 pm2-logrotate pm2-intercom
在代码中启动应用程序:
// javascriptcn.com 代码示例 const pm2 = require('pm2'); pm2.connect(error => { if (error) { console.error(error); process.exit(1); } pm2.start( { script: './app.js', name: 'appName' }, error => { if (error) { console.error(error); pm2.disconnect(); process.exit(1); } console.log('Process started'); pm2.disconnect(); process.exit(0); } ); });
PM2 监控功能
使用 PM2 可以实现对 Node.js 应用程序的监控功能,包括 CPU 和内存的监控。使用 PM2 的监控功能可以帮助我们更加方便地发现问题并快速定位,以确保 Node.js 应用程序的高效稳定运行。
监控 CPU:
$ pm2 monit
监控内存:
$ pm2 monit --memory
PM2 高可用集群部署
使用 PM2 高可用集群部署可以极大提高应用的可用性,确保即使其中一个实例发生故障也能保证应用的正常运行。
测试应用程序:
// javascriptcn.com 代码示例 const http = require('http'); const hostname = '0.0.0.0'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
启动多个应用实例:
$ pm2 start app.js -i max --name="app-cluster"
查看应用实例:
$ pm2 list
总结
使用 PM2 可以大大提高 Node.js 应用程序的稳定性和可用性。本文介绍了 PM2 的基本使用方法、高可用集群部署以及监控功能。希望本文能给大家带来帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/654750bb7d4982a6eb1ad91e