rohit salaria
rohit salaria

Reputation: 196

using nodejs cluster in production?

i was reading nodejs cluster to run multiple instances of node appication

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

    if (cluster.isMaster) {
    console.log(`Master ${process.pid} is running`);
    for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
     }
     cluster.on('exit', (worker, code, signal) => {
     console.log(`worker ${worker.process.pid} died`);
      });
     } 
    else {

     http.createServer((req, res) => {
     res.writeHead(200);
     res.end('hello world\n');
      }).listen(8000);

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

is using this approach good in a production environment. where the number of requests is more

Upvotes: 0

Views: 570

Answers (2)

elraphty
elraphty

Reputation: 630

Yes you can use cluster for as long as you are calculating your cpu length

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

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

The cluster won't create processes more than that of the cpu length

But if clusters are not manage properly it will slow down the entire application process

Upvotes: 0

Atul Agrawal
Atul Agrawal

Reputation: 1520

You can rather use pm2/strongloop for managing this.Because all these modules are production ready and really easy to manage.

I personally feel pm2 is awesome to manage node processes.

Use following link to know more about pm2 http://pm2.keymetrics.io/

Upvotes: 1

Related Questions