Node.js 是開發可擴展應用程式的流行平台,但其單執行緒架構在高負載情況下可能會成為瓶頸。為了充分利用 Node.js 的強大功能,叢集是一種有效的技術,它允許您使用多個 CPU 核心,從而提高應用程式的效能和回應能力。
首先,為您的專案建立一個新目錄並啟動一個新的 Node.js 專案:
mkdir node-cluster
cd node-cluster
npm init -y
在本教程中,您只需要 Node.js 本身,但我們將使用 Express 來建立一個簡單的 HTTP 伺服器。使用以下指令安裝express:
npm install express
建立一個名為 server.js 的檔案並加入以下程式碼:
const cluster = require('cluster'); const express = require('express'); const http = require('http'); const os = require('os'); const app = express(); const numCPUs = os.cpus().length; // Middleware para simular processamento intenso app.get('/', (req, res) => { let sum = 0; for (let i = 0; i < 1e7; i++) { sum += i; } res.send(`Soma: ${sum}, Processado pelo Worker: ${process.pid}`); }); // Lógica de clusterização if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Cria um worker para cada núcleo de CPU for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`Worker ${worker.process.pid} morreu`); }); } else { // Cada worker escuta na mesma porta const server = http.createServer(app); server.listen(3000, () => { console.log(`Worker ${process.pid} started`); }); }
叢集配置必須根據您的機器或伺服器上可用的CPU數量來完成。例如,如果您的伺服器有 6 個 CPU,則最好建立 6 個工作執行緒以充分利用可用資源。使用多於 CPU 核心的工作執行緒可能會導致過載和效能下降,而使用較少的工作執行緒可能會導致資源利用不足。建議測試不同的配置,以找到效能和資源利用率之間的理想平衡。
現在您可以運行您的應用程式了。使用以下指令:
node server.js
如果您按照範例操作,您將在終端機中看到類似以下內容的內容:
Master 12345 is running Worker 12346 started Worker 12347 started Worker 12348 started
要使用curl測試本地伺服器的/路由,可以使用以下命令:
curl http://localhost:3000/
當您在終端機中執行上述命令時,您應該會收到類似於以下內容的回應:
Soma: 49999995000000, Processado pelo Worker: 12348
以上是在 Node.js 應用程式中建立集群的詳細內容。更多資訊請關注PHP中文網其他相關文章!