Cluster in nodeJS

Introduction
- A single instance of Node.js runs in a single thread
- To take advantage of multi-core systems, the user will sometimes want to launch a cluster of Node.js processes to handle the load
- The cluster module allows easy creation of child processes that all share server ports
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master is running`, process.pid);
// Fork workers.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker died`, worker.process.pid);
});
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker started`, process.pid);
}
// Master 67188 is running
// Worker 67191 started
// Worker 67190 started
// Worker 67189 started
// Worker 67192 started