Get your own Node server
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;

if (cluster.isPrimary) {
  console.log(`Primary ${process.pid} is running`);

  // Fork workers
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  // Listen for dying workers
  cluster.on('exit', (worker, code, signal) => {
    console.log(`Worker ${worker.process.pid} died with code: ${code} and signal: ${signal}`);
    console.log('Starting a new worker');
    cluster.fork();
  });
  
  // Event handlers for Worker objects
  cluster.on('fork', (worker) => {
    console.log(`Worker ${worker.id} (PID: ${worker.process.pid}) has been forked`);
  });
  
  cluster.on('online', (worker) => {
    console.log(`Worker ${worker.id} is online`);
  });
  
  cluster.on('listening', (worker, address) => {
    console.log(`Worker ${worker.id} is listening on ${address.address}:${address.port}`);
  });
  
  cluster.on('disconnect', (worker) => {
    console.log(`Worker ${worker.id} has disconnected`);
  });

} 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 from Worker ${process.pid}\n`);
  }).listen(8000);

  console.log(`Worker ${process.pid} started`);
}

              
Primary 32496 is running
Worker 1 (PID: 31572) has been forked
Worker 2 (PID: 10228) has been forked
Worker 3 (PID: 4940) has been forked
Worker 4 (PID: 29704) has been forked
Worker 5 (PID: 9496) has been forked
Worker 6 (PID: 32020) has been forked
Worker 7 (PID: 12356) has been forked
Worker 8 (PID: 18276) has been forked
Worker 9 (PID: 19128) has been forked
Worker 10 (PID: 31844) has been forked
Worker 11 (PID: 30496) has been forked
Worker 12 (PID: 25516) has been forked
Worker 13 (PID: 28844) has been forked
Worker 14 (PID: 9084) has been forked
Worker 15 (PID: 31352) has been forked
Worker 16 (PID: 12096) has been forked
Worker 1 is online
Worker 2 is online
Worker 3 is online
Worker 7 is online
Worker 12356 started
Worker 4 is online
Worker 7 is listening on null:8000
Worker 6 is online
Worker 5 is online
Worker 10 is online
Worker 9 is online
Worker 12 is online
Worker 8 is online
Worker 11 is online
Worker 31572 started
Worker 15 is online
Worker 1 is listening on null:8000
Worker 14 is online
Worker 10228 started
Worker 4940 started
Worker 31844 started
Worker 2 is listening on null:8000
Worker 32020 started
Worker 29704 started
Worker 10 is listening on null:8000
Worker 3 is listening on null:8000
Worker 19128 started
Worker 6 is listening on null:8000
Worker 25516 started
Worker 18276 started
Worker 9496 started
Worker 13 is online
Worker 9 is listening on null:8000
Worker 16 is online
Worker 4 is listening on null:8000
Worker 12 is listening on null:8000
Worker 30496 started
Worker 8 is listening on null:8000
Worker 5 is listening on null:8000
Worker 11 is listening on null:8000
Worker 31352 started
Worker 9084 started
Worker 15 is listening on null:8000
Worker 28844 started
Worker 12096 started
Worker 14 is listening on null:8000
Worker 16 is listening on null:8000
Worker 13 is listening on null:8000