Node.js: 讓程式碼運行於多核心 CPU
此文件屬於快速開始指南的一部分。請在此處查看完整指南:學習如何在 Stackhero 上快速且安全地部署 Node.js 服務。
👋 歡迎瀏覽 Stackhero 文件!
Stackhero 為您提供即用型 Node.js cloud 環境,助您加快開發進度:
- 只需一個簡單的
git push,即可於數秒內部署至生產環境,無需額外工具或手動設定。- 可自訂您的網域名稱,並享有自動配置 HTTPS 憑證,讓您的應用程式安全無憂,無需額外設定。
- 自動備份、一鍵更新及可預測的收費模式,讓您專注於開發功能,Stackhero 會為您管理基礎設施。
- 建基於專屬私有基礎設施,確保穩定效能及高度安全。
節省時間,減少營運負擔:您只需幾分鐘,即可於 Stackhero 的 Node.js cloud hosting 上運行您的應用程式。
預設情況下,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`);
}