发布于2026-07-20 阅读(0)
扫一扫,手机访问
在 Ubuntu 上折腾 Node.js 集群模式,说白了就是想榨干多核 CPU 的性能,让应用能扛住更大的并发量。这事其实不难,跟着下面的步骤走就行,咱们直接切入正题。
动手之前,先确认你的 Ubuntu 系统里有没有装好 Node.js。没装的话,两行命令搞定:
sudo apt update
sudo apt install nodejs npm
装完可以跑一下 node -v 和 npm -v 看一眼版本,心里有个数。
接下来,建个目录当工作区:
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`);
}
保存文件后,在终端里直接运行:
node app.js
你会看到控制台打印出主进程的 PID,接着一串工作进程依次启动。如果一切正常,所有进程会一起监听 8000 端口。
怎么确认多进程真的跑起来了?用 ps 命令扫一眼:
ps aux | grep node
输出里应该有一个主进程(进程名里带 node,PID 和打印的一致),外加若干个工作进程。数量对得上 CPU 核心数,说明集群模式已经生效。
接下来试试流量分发效果。多敲几次 curl:
curl http://localhost:8000
每次返回的都是 hello world 对吧?但如果你留意控制台日志,会发现响应来自不同的工作进程(每个请求由哪个 worker 处理,日志里会打印出 PID)。这就说明 Node.js 的 cluster 模块已经自动帮你把请求均匀地轮询到各个工作进程上了。
生产环境光靠手撸的集群代码肯定不够,还得配上趁手的工具。这里推荐两个:
全局装上 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 更是如虎添翼。下次遇到高并发场景,别忘了这个套路。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8