在 Node.js 开发中,我们经常会在生产环境下使用 PM2 来管理 Node.js 应用。PM2 是一个 Node.js 进程管理器,可以帮助我们监控应用运行状态、自动重启应用程序、性能监控等,保证 Node.js 应用的性能稳定性。
在本篇文章中,我们将介绍 PM2 的一些基本用法,并通过实例代码演示如何应用 PM2 在 Node.js 应用中提高性能稳定性。
安装 PM2
全局安装 PM2:
npm install pm2 -g
运行以下命令检查 PM2 是否安装成功:
pm2 -v
使用 PM2 部署 Node.js 应用
运行以下命令启动 Node.js 应用:
pm2 start app.js
其中,app.js 为 Node.js 应用的入口文件。这条命令会启动一个名为 app 的进程。
可以运行以下命令查看当前 PM2 启动的所有进程:
pm2 list
如果需要停止应用程序,可以运行以下命令:
pm2 stop app
或者,停止所有 PM2 启动的进程:
pm2 stop all
自动重启应用程序
PM2 可以帮助我们自动重启应用程序,保证应用程序的稳定性。我们可以设置相关的参数来控制应用程序的重启:
--watch
: 监控应用程序改动并自动重启应用程序。--max-memory-restart
: 当内存占用超过指定值时,自动重启应用程序。
例如,此命令将使用 PM2 并自动监视 app.js 文件的变化:
pm2 start app.js --watch
如果我们想要在内存占用超过 200 MB 时自动重启应用程序,可以运行以下命令:
pm2 start app.js --max-memory-restart 200MB
性能监控
PM2 还提供了一个内置的性能监控器,用于监控服务器 CPU 和内存占用情况。在启动应用程序之后,可以访问以下 URL 查看监控数据:
http://localhost:9615
使用 PM2 集群保证高可用性
对于大规模应用来说,单一进程的应用程序并不足以满足高流量和高并发量的需求。在这种情况下,我们需要使用 PM2 集群来保证高可用性。集群由多个应用程序组成,每个应用程序都可以独立处理请求。可以使用以下命令在 PM2 集群中启动多个进程:
pm2 start app.js -i max
其中 -i max
参数为使用尽可能多的 CPU 核心来启动进程。如果需要手动指定进程数,可以使用以下命令:
pm2 start app.js -i 4
在使用 PM2 集群时,由于每个应用程序可以独立处理请求,因此需要在代码中使用多线程或者多进程的方式进行开发。
以下示例代码演示了如何使用 PM2 集群保证 Node.js 应用程序的高可用性:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ------- - ---------------------------- -- ------------------ - -- ---- -------- --- ---- - - -- - - -------- ---- - --------------- - -- ------ --- ----- ------- ------------------ -------- ----- ------- -- - ------------------- --------------------- ------- --------------- --- - ---- - -- ------- --- ----- --- --- ---------- -- -- ---- ---- -- -- -- ---- ------ ----------------- -
首先,我们查询可用的 CPU 内核数量。然后,如果当前进程是主进程,我们使用 cluster.fork()
方法创建子进程。如果有一个进程崩溃,主进程将重启进程。否则,如果当前进程是子进程,则加载实际的应用程序。
总结
本篇文章介绍了 PM2 的基本用法和应用场景,示范了如何使用 PM2 提高 Node.js 应用程序的性能和可用性。PM2 简单易用,能够辅助 Node.js 应用程序开发人员更好地管理和优化应用程序,并提高应用程序的性能和可用性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647f06b648841e9894eb7a78