商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在Ubuntu上配置Node.js的集群模式

如何在Ubuntu上配置Node.js的集群模式

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

在 Ubuntu 上折腾 Node.js 集群模式,说白了就是想榨干多核 CPU 的性能,让应用能扛住更大的并发量。这事其实不难,跟着下面的步骤走就行,咱们直接切入正题。

1. 安装 Node.js

动手之前,先确认你的 Ubuntu 系统里有没有装好 Node.js。没装的话,两行命令搞定:

sudo apt update
sudo apt install nodejs npm

装完可以跑一下 node -vnpm -v 看一眼版本,心里有个数。

2. 创建一个简单的 Node.js 应用

接下来,建个目录当工作区:

mkdir my-cluster-app
cd my-cluster-app

然后新建一个 app.js 文件,把下面这段代码贴进去。别被它吓到,逻辑很直白——主进程根据 CPU 核心数 fork 出对应数量的工作进程,每个工作进程都启动一个 HTTP 服务,共享 8000 端口。

const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
    console.log(`Master ${process.pid} is running`);

    // Fork workers.
    for (let i = 0; i < numCPUs; i++) {
        cluster.fork();
    }

    cluster.on('exit', (worker, code, signal) => {
        console.log(`worker ${worker.process.pid} died`);
    });
} else {
    // Workers can share any TCP connection
    // In this case it is an HTTP server
    http.createServer((req, res) => {
        res.writeHead(200);
        res.end('hello world\n');
    }).listen(8000);

    console.log(`Worker ${process.pid} started`);
}

3. 运行应用

保存文件后,在终端里直接运行:

node app.js

你会看到控制台打印出主进程的 PID,接着一串工作进程依次启动。如果一切正常,所有进程会一起监听 8000 端口。

4. 验证集群模式

怎么确认多进程真的跑起来了?用 ps 命令扫一眼:

ps aux | grep node

输出里应该有一个主进程(进程名里带 node,PID 和打印的一致),外加若干个工作进程。数量对得上 CPU 核心数,说明集群模式已经生效。

5. 测试负载均衡

接下来试试流量分发效果。多敲几次 curl

curl http://localhost:8000

每次返回的都是 hello world 对吧?但如果你留意控制台日志,会发现响应来自不同的工作进程(每个请求由哪个 worker 处理,日志里会打印出 PID)。这就说明 Node.js 的 cluster 模块已经自动帮你把请求均匀地轮询到各个工作进程上了。

6. 监控和管理

生产环境光靠手撸的集群代码肯定不够,还得配上趁手的工具。这里推荐两个:

  • PM2 —— 进程管理利器,自带负载均衡、自动重启、日志管理,生产首选。
  • nodemon —— 开发时用,代码一改自动重启,省心。

使用 PM2

全局装上 PM2:

sudo npm install -g pm2

然后一行命令启动,-i max 参数会自动根据 CPU 核心数 fork 出对应数量的进程:

pm2 start app.js -i max

查看运行状态和日志也很方便:

pm2 status
pm2 logs

到这步,Ubuntu 上的 Node.js 集群模式就配好了。从单进程到多进程,性能提升立竿见影,而且 Node 内置的 cluster 模块用起来非常顺手,配合 PM2 更是如虎添翼。下次遇到高并发场景,别忘了这个套路。

本文转载于:https://www.yisu.com/ask/46037378.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注