什么是 PM2?
PM2 是一个 Node.js 进程管理器,可以让你轻松地启动、重启、停止你的应用程序,并保证它们始终保持活动状态。
PM2 的主要特点有:
- 0s downtime deployment(零下线部署):在你的应用程序有新版本要部署时,PM2 可以保证零停机时间部署,不会造成用户体验上的影响。
- 内置负载均衡(Load balancer):PM2 可以自动将流量分配到多个进程中,从而提高应用程序的吞吐量和稳定性。
- 自动重启:当进程崩溃或产生异常时,PM2 可以自动重新启动应用程序。
安装 PM2
PM2 的安装非常简单,可以通过 npm 或 yarn 进行安装:
npm install pm2 -g # 或者 yarn global add pm2
使用 PM2
启动应用程序:
pm2 start app.js
重启应用程序:
pm2 restart app
停止应用程序:
pm2 stop app
列出正在运行的应用程序:
pm2 list
查看应用程序的日志:
pm2 logs app
当然,PM2 还有很多其他的功能,例如:
- 设置环境变量:可以使用
--env
参数来指定应用程序的环境变量,例如--env production
。 - 监控应用程序:PM2 可以监控应用程序的 CPU 和内存使用情况,并在达到预设阈值时触发告警。
- 通过 API 或 Web 界面管理应用程序:PM2 可以通过 RESTful API 或 Web 界面来管理应用程序。
实战应用
假设你有一个 Node.js 的服务器应用程序,它需要监听 8080
端口。我们可以通过下面的命令来启动它:
pm2 start app.js --name myapp -- --port 8080
此时,PM2 会自动为你分配一个进程,并监听 8080
端口。可以通过命令 pm2 logs myapp
来查看应用程序的日志。
如果你想保证应用程序的可用性,就需要配置自动重启。可以通过下面的命令来设置:
pm2 start app.js --name myapp -- --port 8080 --autorestart
此时,PM2 会在应用程序退出时自动重启它。
如果你需要同时启动多个进程,并对它们进行负载均衡,可以使用 --instances
参数来指定进程数:
pm2 start app.js --name myapp --instances 4 -- --port 8080 --autorestart
此时,PM2 会启动 4 个进程,并自动进行负载均衡。
最后,如果你需要通过 API 或 Web 界面来管理应用程序,可以使用 pm2 plus
来开通 PM2 Plus 服务。 PM2 Plus 是一个 PM2 的增强版本,可以提供更多的监控和管理功能。
总结
PM2 是一个非常实用的 Node.js 进程管理工具,可以帮助我们轻松地管理应用程序的启动、重启、停止等工作。同时,PM2 还具有零停机时间部署、负载均衡、自动重启等多种功能,可以为我们带来更好的用户体验和应用程序稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6498132c48841e98945263de