Best Online Tutorials

SQL Tutorial

Free SQL Tutorial

SQL Interview Questions

SQL Practice Questions

SQL Tips & Tricks

SQL Errors

SQL Books

Angular Tutorial

Free Angular Tutorial

Angular Interview Questions

Angular Practice Questions

Angular Tips & Tricks

Angular Errors

Angular Books

Node.js Tutorial

Free Node.js Tutorial

Node.js Interview Questions

Node.js Practice Questions

Node.js Tips & Tricks

Node.js Errors

Node.js Books

React.js Tutorial

Free React.js Tutorial

React.js Interview Questions

React.js Practice Questions

React.js Tips & Tricks

React.js Errors

React.js Books

SSIS Tutorial

Free SSIS Tutorial

SSIS Interview Questions

SSIS Practice Questions

SSIS Tips & Tricks

SSIS Errors

SSIS Books

SEO Tutorial

Free SEO Tutorial

SEO Interview Questions

SEO Practice Questions

SEO Tips & Tricks

SEO Errors

SEO Books

Javascript Tutorial

Free Javascript Tutorial

Javascript Interview Questions

Javascript Practice Questions

Javascript Tips & Tricks

Javascript Errors

Javascript Books

MongoDB Tutorial

Free MongoDB Tutorial

MongoDB Interview Questions

MongoDB Practice Questions

MongoDB Tips & Tricks

MongoDB Errors

MongoDB Books

Next.js Tutorial

Free Next.js Tutorial

Next.js Interview Questions

Next.js Practice Questions

Next.js Tips & Tricks

Next.js Errors

Next.js Books

Cluster in Nodejs - setting up, benefits and difference with child_process 

Prashant Surya  |   Nov 18, 2019  |  Views: 1161
pictures

Description:

What is the cluster in Nodejs?
How to do multi-threading in Nodejs?
How multi process works in nodejs?
how to do load balancing in Nodejs?
What is cluster.fork()?
cluster vs child_process nodejs?


For the following questions, we have a small notes over it which may be helpful to get overview of cluster in nodejs.

Cluster :

  • Cluster in nodejs is a group of work processors.
  • Number of work processors in group is decided by the number of available CPU in OS.
  • - If your system processor is a quad-core processor, then you can start 4 workers
  • Each work processor is started by using cluster.fork() 
  • fork creates the exact clone of process, using the same available port to the master process.
  • same port is being shared by each worker process, due to IPC( Inter Process Communication ) technique.

Benefits of using cluster:

  • Load balancing
  • Multi process operation
  • Multi Threading (but uses same port)
  • Use of same port
  • Performance increasing up-to 3.2x


var cluster = require('cluster');
var express = require('express');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        // Create a worker
        cluster.fork();
    }
} else {
    // Workers share the TCP connection in this server
    var app = express();
    app.get('/', function (req, res) {
        res.send('Hello World!');
    });
    // All workers use this same port
    app.listen(8080);
}

Note:
  • Each worker process is generally a new V8 instance.
  • It may takes 30ms startup time for each and at least 10mb of memory per instance.


cluster.isMaster:

This is used to check whether the cluster is a master process or the child worker process.


How are requests are divided up between the worker process?

Cluster have their two types of policy for the handling of requests.
  • cluster.SCHED_RR  - Round Robin Policy ( by default, it is set in Linux and OSX )
  • cluster.SCHED_NONE ( by default, it is set in Windows )


How to change the policy manually?

cluster.schedulingPolicy is used to set the policy type you want to set.
Or NODE_CLUSTER_SCHED_POLICY is set in your environment.


Difference between cluster.fork() and child_process.fork()

cluster.fork() - It starts from the beginning (entry) of the module.
child_process.fork() - It starts where its been defined.


child_process.fork() method is a bit lower-level and required arguments like
  • location (file path) of the module as an argument, 
  • current working directory, 
  • user that owns the process, 
  • environment variables...


Comments:
Content Contributor
Prashant Surya

Prashant Surya

Software developer at Uniserve Data Technologies Pvt. Ltd.  |   Noida, Uttar Pradesh, India

I am a software developer, freelancer and trainer working on technologies likes. MEAN stack, MERN Stack, ASP.NET full stack, WebRTC, socket.io ,PWA, SQL, JavaScript, jQuery, HTML, CSS, SEO, responsive UI/UX designing... having 7 years of experience in development in multiple domains like, eCommerce, RTA, capital markets, education, real estate...


Read related articles

Deploy your first Node.js App on Heroku for free

Prashant Surya  |   Jan 22, 2020  |  Views: 1210

How to add google adsense in angular universal

Prashant Surya  |   Dec 2, 2019  |  Views: 2147

Want to sell your software ?-

If you want to sell your readymade software to the genuine clients or businessman, list your software with details and demo links.

  • Sell ERP
  • Sell Website Clones
  • Sell App Clones
  • Sell Readymade Portals
  • Sell Readymade Websites
  • Sell Mobile Apps
  • Sell Window Apps

Clients will find it using our advanced search filter and will contact you directly.

No any charge for the product lsiting.

Do you own a Company ?+

Property.sale

Buy or Sell Commercial Property+

Are you a freelancer ?+

Looking for a job ?+

Are you a Service Provider ?+

Are you a blogger ?+

Do you own an IT Institute ?+



Property.sale