pm2 的集群模式示例

840阅读 0评论2022-11-17 jiuniu110
分类:Web开发

mkdir myapp
touch server.js
  1. const http = require("http");
  2. http.createServer((req, res) => {
  3. res.writeHead(200);
  4. res.end("server endpoint hit");
  5. console.log(`got new connection on port ${req} ${process.pid}`)
  6. }).listen(13002);
启动9个实例
pm2 start server.js -i 9


  1. ps -ef | grep node
  2. root 3320 32331 0 Nov16 ? 00:00:03 node /root/study/nodejs/myapp/index.js
  3. root 3510 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  4. root 3517 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  5. root 3524 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  6. root 3531 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  7. root 3542 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  8. root 3553 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  9. root 3564 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  10. root 3575 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js
  11. root 3586 32331 0 00:08 ? 00:00:01 node /root/study/nodejs/server_app/server.js

pm2 ls查看 mode 为cluster


验证访问是否打到不同的进程
用pm2 log server 查看日志如下
2|server  | got new connection on port [object Object] 5421
3|server  | got new connection on port [object Object] 5422
4|server  | got new connection on port [object Object] 5435
5|server  | got new connection on port [object Object] 5441
6|server  | got new connection on port [object Object] 5449
7|server  | got new connection on port [object Object] 5455


curl多次访问如下
curl -is localhost:13002 

增加多进程监听多端口模式,主要是该字段起作用 increment_var : 'PORT'


module.exports = { apps : [ { name: "myapp", script: "./app.js", instances: 2, exec_mode: "cluster", watch: true, increment_var : 'PORT', env: { "PORT": 3000, "NODE_ENV": "development" } } ] }
见:pm2.keymetrics.io/docs/usage/environment/


上一篇:centos7 yum 安装 pg
下一篇:pm2频繁重启应用的问题