Node.js: 利用多核 CPU 运行代码
本文档属于快速入门指南的一部分。您可以在此处查看完整指南:了解如何在 Stackhero 上快速且安全地部署 Node.js 服务。
👋 欢迎查阅 Stackhero 文档!
Stackhero 提供即开即用的 Node.js 云环境,助您高效开发:
- 只需一次简单的
git push,几秒钟即可部署到生产环境,无需额外工具或手动配置。- 支持自定义域名,并自动配置 HTTPS 证书,让您的应用安全无忧,无需额外设置。
- 自动备份、一键升级以及可预测的定价,让您专注于功能开发,基础设施交由 Stackhero 托管。
- 基于专属私有基础设施,保障性能稳定与高水平安全。
节省时间,降低运维负担:只需几分钟,您的应用即可在 Stackhero 的 Node.js 云主机 上运行。
默认情况下,Node.js 只使用单核和单线程。若要充分利用所有可用 CPU 核心,建议使用 Node.js 的 cluster API。官方文档见:https://nodejs.org/api/cluster.html。
以下是一个简单示例,使用所有可用 CPU 创建 HTTP 服务器:
const cluster = require('cluster');
const http = require('http');
const cpusCount = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers
for (let i = 0; i < cpusCount; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
});
} else {
// Workers 共享所有 TCP 连接,这里是 HTTP 服务器
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}