在 CentOS 上搭建 Node.js 集群可以通过多种方式实现,其中最常见的是使用 Node.js 的内置模块 cluster
。以下是一个基本的步骤指南,帮助你在 CentOS 上搭建一个简单的 Node.js 集群。
前提条件
-
安装 Node.js:确保你已经在 CentOS 上安装了 Node.js。如果没有安装,可以使用以下命令进行安装:
sudo yum install -y nodejs npm
-
创建项目目录:创建一个新的目录来存放你的 Node.js 应用程序。
mkdir my-cluster-app cd my-cluster-app
-
初始化项目:使用
npm init
初始化一个新的 Node.js 项目。npm init -y
-
创建服务器文件:创建一个名为
server.js
的文件,并添加以下代码: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 server.js
-
验证集群:你可以使用
curl
或浏览器访问http://localhost:8000
来验证集群是否正常工作。你应该会看到多次响应,每次请求都会由不同的工作进程处理。
其他注意事项
- 负载均衡:Node.js 的
cluster
模块默认使用轮询方式进行负载均衡。你可以根据需要调整负载均衡策略。 - 错误处理:确保你的应用程序有适当的错误处理机制,以便在某个工作进程崩溃时能够自动重启。
- 监控和管理:考虑使用进程管理工具如 PM2 来监控和管理你的 Node.js 应用程序。PM2 提供了丰富的功能,包括自动重启、日志管理、性能监控等。
使用 PM2 管理集群
PM2 是一个非常流行的 Node.js 进程管理工具,可以简化集群的管理和监控。以下是如何使用 PM2 在 CentOS 上搭建和管理 Node.js 集群的步骤:
-
安装 PM2:
sudo npm install pm2 -g
-
启动应用:使用 PM2 启动你的 Node.js 应用程序,并指定要启动的工作进程数量。
pm2 start server.js -i numCPUs
其中
numCPUs
是你的 CPU 核心数。 -
查看进程列表:使用以下命令查看 PM2 管理的所有进程。
pm2 list
-
监控和管理:PM2 提供了丰富的命令来监控和管理你的应用程序,例如:
- 查看日志:
pm2 logs
- 停止进程:
pm2 stop
- 重启进程:
pm2 restart
- 删除进程:
pm2 delete
- 查看日志:
通过以上步骤,你可以在 CentOS 上成功搭建和管理一个 Node.js 集群。