Hello World

這是你的 cluster.js

const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // 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
  require('./server.js')();
}

這是你的主要內容 2:

const http = require('http');

function startServer() {
    const server = http.createServer((req, res) => {
      res.writeHead(200);
      res.end('Hello Http');
    });

    server.listen(3000);
}

if(!module.parent) {
    // Start server if file is run directly
    startServer();
} else {
    // Export server, if file is referenced via cluster
    module.exports = startServer;
}

在這個例子中,我們託管一個基本的 Web 伺服器,但是,我們使用內建的叢集模組來啟動 worker(子程序)。程序數量取決於可用的 CPU 核心數。這使得 Node.js 應用程式可以利用多核 CPU,因為 Node.js 的單個例項在單個執行緒中執行。現在,應用程式將在所有程序中共享埠 8000。預設情況下,使用 Round-Robin 方法會自動在工作人員之間分配負載。