什么是 PM2?
PM2 是一个 Node.js 进程管理器,使用它可以轻松地管理你的 Node.js 应用程序。PM2 可以监控你的应用程序并在发生错误时自动重启,还可以设置自动重启策略、负载均衡器和集群模式等。
什么是集群模式?
集群模式是一种将应用程序分配到多个进程中运行的方式,每个进程都可以处理一部分客户端请求。这可以提高应用程序的可靠性和性能。在集群模式下,如果有一个进程崩溃了,其他进程可以继续处理请求,保证应用程序的可用性。
如何使用 PM2 实现 Node.js 集群部署?
- 安装 PM2
首先需要全局安装 PM2:
npm install pm2 -g
- 编写 Node.js 应用程序
在本地或线上服务器上编写一个 Node.js 应用程序,例如:
const http = require('http'); http.createServer((req, res) => { res.writeHead(200); res.end('Hello, World!'); }).listen(8080);
这是一个简单的 HTTP 服务器程序,可以响应来自客户端的请求。
- 部署 Node.js 应用程序
使用 PM2 部署应用程序,例如:
pm2 start app.js --name myapp -i 2
说明:
app.js
是你的应用程序文件。--name myapp
是给这个应用程序起一个名字。-i 2
表示启动 2 个进程,这样就可以使用集群模式了。
- 配置负载均衡器
默认情况下,PM2 会使用轮训算法实现负载均衡,即将请求依次分配到每个进程上。如果需要自己实现负载均衡,可以使用 PM2 自带的负载均衡器或使用 Nginx 等其他工具。
使用 PM2 自带的负载均衡器:
pm2 start app.js --name myapp -i 2 --env production
在应用程序运行时,PM2 会自动创建一个反向代理服务器,将客户端请求分配到不同的进程上。
- 监控应用程序
可以使用 PM2 内置的监控功能查看应用程序的运行情况:
pm2 monit
这会打开一个交互式监控界面,可以查看 CPU、内存和网络使用情况等。
- 自动重启策略
可以通过配置自动重启策略来保证应用程序的可用性。
例如,如果一个进程退出了,自动重启它:
pm2 start app.js --name myapp -i 2 --env production --restart-delay 3000 --max-restarts 10
说明:
--restart-delay 3000
表示重启延迟时间为 3 秒。--max-restarts 10
表示最多允许重启次数为 10 次,如果超过次数仍无法启动,进程就会退出。- 这样配置后,如果进程无法正常启动,则 PM2 会尝试 10 次,在每次尝试之间等待 3 秒,直到进程成功启动为止。
总结
PM2 是一款非常实用的 Node.js 进程管理工具,有着强大的监控、重启和负载均衡等功能,可以帮助你轻松地管理你的 Node.js 应用程序。使用 PM2 部署 Node.js 集群,可以提高应用程序的可靠性和性能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64913e2148841e9894f3de58