How to scale NodeJs applications using the cluster module.

  Рет қаралды 49,405

Mafia Codes

Mafia Codes

3 жыл бұрын

In this video you will learn how to #scale #nodejs apps using the built in #cluster module. Its super easy to use and it will make your applications much faster and in turn your applications will have #zero-downtime. It will also automatically handle #load-balancing
Deploy apps: zeet.co/r/yourstruly
(One FREE project forever 😘)
FREE $100 credit @Digital Ocean: m.do.co/c/3208f08b3324
Subscribe: kzbin.info...
Support the channel:
Paypal: www.paypal.me/trulymittal
Patreon: / trulymittal
⭐ Kite is a free AI-powered coding assistant that will help you code faster and smarter. The Kite plugin integrates with all the top editors and IDEs to give you smart completions and documentation while you’re typing. I've been using Kite for 6 months and I love it! www.kite.com/get-kite/?...
---------------
Other useful Playlists
---------------
#RestAPI (#NodeJS and MongoDB): • REST API using NodeJS ...
#API Authentication using #JWT: • NodeJS API Authenticat...
#Firebase: • Firebase | Build a Not...
Docker: • Docker
MongoDB: • Learn MongoDB in 50 mi...
Html/Css/Js: • HTML / CSS / JS
Android: • Android
Challenges: • Challenges
#yoursTRULY #tutorial #howto #nodejs #android

Пікірлер: 165
@Mirzly
@Mirzly 3 жыл бұрын
Where were you a year ago when I first heard of this stuff and went on to figure it out on my own 😢
@mafiacodes
@mafiacodes 3 жыл бұрын
Subscribe like share
@soft4win619
@soft4win619 2 жыл бұрын
This is so cool, your explanation was superb, didn't knew a single thing about cluster, but was able to setup the whole thing with so much ease.
@sayed_faixal
@sayed_faixal 2 жыл бұрын
Awesome 🔥 As mentioned in the description, every line was explained in a detailed manner.
@oneeminem2666
@oneeminem2666 2 жыл бұрын
This is just what I was looking for thanks man. Please post more core concepts like these. Great Work
@sokoyaadedolapo5321
@sokoyaadedolapo5321 9 ай бұрын
Same here too, I've been looking for this type of example didn't see any, what I found is how they work not how to use them.
@mdjahidulislam9205
@mdjahidulislam9205 3 жыл бұрын
You are helping to do my app on production. Please make more videos like this so that we can learn real-life stuff.
@rahulnautiyal4225
@rahulnautiyal4225 3 жыл бұрын
Great explanation sir , I am watching your videos from last year now you are doing too good . I am following you from my 3 different id's. Great work keep going on .
@jibanjyotinayak9359
@jibanjyotinayak9359 Жыл бұрын
this is one of the awesome video on node cluter module on KZbin yet...
@shashwatsingh253
@shashwatsingh253 Жыл бұрын
Best KZbin for NodeJS important topics.
@azeemshah9501
@azeemshah9501 Жыл бұрын
So good. It's a very good way to scale a simple application for starters.
@vellaikaagitham8401
@vellaikaagitham8401 Жыл бұрын
Thanks for clear explanation
@himanshulal97
@himanshulal97 2 жыл бұрын
that 's the reason i subscribed to your channel , thanks a lot bro thanku thanku thanku
@missiontechdk6064
@missiontechdk6064 2 жыл бұрын
outstanding explanation bro. Keep posting such quality content 🔥🔥
@pranavwani
@pranavwani Жыл бұрын
Thanks man for sharing important information!
@Dipenparmar12
@Dipenparmar12 Жыл бұрын
Amazing real world project tutorial.
@zakariasassi
@zakariasassi 11 ай бұрын
Amazing video , thanks bro
@student7743
@student7743 Жыл бұрын
this video is awesome. but i stucked as you didn't tell where to use this loadtester?
@mathearts9739
@mathearts9739 3 жыл бұрын
Subscribed awesome explanation.
@samusaw
@samusaw Жыл бұрын
very very great work
@utsavojha2953
@utsavojha2953 2 жыл бұрын
Thanks for this awesome video 👍🏻
@trihargianto
@trihargianto Жыл бұрын
wow, such a great explanation 😃
@parasarora7565
@parasarora7565 3 жыл бұрын
Nice tutorials, helping me alot. Keep uploading
@mafiacodes
@mafiacodes 3 жыл бұрын
Subscribe like share
@kid_kulafu_1727
@kid_kulafu_1727 2 жыл бұрын
Thank you man. I love you!
@gautiere-d9012
@gautiere-d9012 2 жыл бұрын
Amazing tutorial, thank you
@mafiacodes
@mafiacodes 2 жыл бұрын
Glad you enjoyed it!
@NirdeshPokhrel
@NirdeshPokhrel 2 жыл бұрын
I only knew we can scale nodeJs server, but have never tried to do so. Thanks to you for making me(us) know scaling server in nodeJs. This is worth a subscribe.❤️☘️
@nandhakumar4817
@nandhakumar4817 3 жыл бұрын
Clear explanation thanks
@AjaySharma-vz9ei
@AjaySharma-vz9ei Жыл бұрын
Superb 👐🏻👏🏻
@OmpalSingh-pw7mc
@OmpalSingh-pw7mc Жыл бұрын
Great work 👏
@mafiacodes
@mafiacodes Жыл бұрын
Thanks ✌️
@kevalcharla9797
@kevalcharla9797 3 жыл бұрын
Amazing Bro!!
@tejass817
@tejass817 Жыл бұрын
Very useful information.
@mohitchauhan569
@mohitchauhan569 2 жыл бұрын
very nice explain clustering
@ciroamore2129
@ciroamore2129 3 жыл бұрын
Truly Amazing :)!!!!
@moose43h
@moose43h 2 жыл бұрын
This is amazing
@abhijeetshikharvlog1444
@abhijeetshikharvlog1444 Жыл бұрын
Good explanation
@jeevanbhattarai4133
@jeevanbhattarai4133 Жыл бұрын
great one
@syedshahzaibzafar2422
@syedshahzaibzafar2422 2 жыл бұрын
great explanation.
@thetechrr
@thetechrr Жыл бұрын
Thank you man, you saved the day.
@mafiacodes
@mafiacodes Жыл бұрын
Glad to hear it
@Inoinovation
@Inoinovation 2 жыл бұрын
Great explanation bhai 👍❤️🔥
@firojsiddiki2750
@firojsiddiki2750 3 жыл бұрын
it is really a super useful video
@saifulsync155
@saifulsync155 Ай бұрын
great video
@hardikmistry1661
@hardikmistry1661 2 жыл бұрын
this was the great video sir 😎😎 i use compresion with cluster module and it give realy great result thans sir to make this awesome video. 👍🤩😍.
@nexus2056
@nexus2056 8 ай бұрын
PHENOMENAL VIDEO BROTHER!! Mashallah!
@theervu
@theervu Жыл бұрын
Thanks
@stylesg7818
@stylesg7818 2 жыл бұрын
Interesting... Thank you
@PuneetThakkar7
@PuneetThakkar7 2 жыл бұрын
Excellent example
@mafiacodes
@mafiacodes 2 жыл бұрын
subscribe like share
@TechBoldy
@TechBoldy 3 жыл бұрын
Super awesome video sir 💜❤💙
@mafiacodes
@mafiacodes 3 жыл бұрын
Subscribe like share
@brucebane7401
@brucebane7401 3 жыл бұрын
amazing !!!!!
@RIAN8835
@RIAN8835 Жыл бұрын
you are awesome
@kishorindhe4891
@kishorindhe4891 Жыл бұрын
Great ♥️♥️
@Javedboqo1
@Javedboqo1 Жыл бұрын
Nice tutorial Does clusters are still useful in recent Nodejs versions or is there any alternative of it?
@SaiKumar-tg6ct
@SaiKumar-tg6ct 3 жыл бұрын
Good explanation, please try to Make videoes on nodejs interview questions
@rahulr9539
@rahulr9539 2 жыл бұрын
I would suggest installing nodemon as dev dependency or global dependency
@bosluk8806
@bosluk8806 Жыл бұрын
A nice solution that you can use for small projects. However, if you are looking for a solution for more complex projects, instead of this, you should run multiple node instances and put a load balancer in front of them.
@mafiacodes
@mafiacodes Жыл бұрын
Yes
@paulojo720
@paulojo720 Жыл бұрын
Pls how can I do that, is there any tutorial source you can provide to learn this 🙏, thanks
@StLouis-yg8jp
@StLouis-yg8jp Жыл бұрын
Why not have multiple node instances all using the cluster module? Wouldn't that be the most efficient?
@hongphuc5497
@hongphuc5497 Жыл бұрын
@@StLouis-yg8jp Because they would share the same memory on your EC2 (I mean the machine you run application), it's a drawback for ram intensive tasks.
@MRAMetharam
@MRAMetharam 2 жыл бұрын
Although the content here is superb, something else caught my eye! What did you have to install to have your comments use a different font?
@MrRaj-qv7pg
@MrRaj-qv7pg 2 жыл бұрын
Good job bro. What is your keyboard name ?
@linuxtubers7313
@linuxtubers7313 2 жыл бұрын
Thanks. Which theme and font you're using?
@DTUSEM
@DTUSEM Жыл бұрын
Should we need to do load balancing after this also?
@sourikghosh2597
@sourikghosh2597 3 жыл бұрын
what is the difference between forking and creating a new worker thread ??
@developer_01
@developer_01 Жыл бұрын
Hey what are you using to test the performance of your node application
@SaiKumar-bu5ji
@SaiKumar-bu5ji 2 жыл бұрын
For what kind of applications clustering API is ideal choice
@mohamad.elbohsaly
@mohamad.elbohsaly Жыл бұрын
How do you deal with cron job(s)? They get forked as well to nodes?
@todaysmotivation9692
@todaysmotivation9692 2 жыл бұрын
Your fluency is awsome, just make your speed a bit slow - it will be great
@greggord-hume3979
@greggord-hume3979 2 жыл бұрын
I deploy to Heroku using a Hobby dyno and I have noticed my node project barely uses any CPU or RAM when stress testing. So i added more workers, because its only 1 cpu I had to hardcode a worker amount - i found 6 was good for my app. My requests per second and response times improved drastically - 6 fold you could say. I will now try cluster to see what happens but i think its the same thing... although its recommended to not do this and let Node handle the load, i cant help but notice adding workers and clusters utilizes more of the Servers resources and speeds up the response per second.
@TechTillDawn
@TechTillDawn 2 жыл бұрын
Interesting
@puspendumatilal6460
@puspendumatilal6460 2 жыл бұрын
I wish I could have a love reaction button.
@KallolMedhi
@KallolMedhi Жыл бұрын
Thanks for the amazong video but in my case I am getting the response from the same pid always, there is no round-robin happening
@yesbit
@yesbit Жыл бұрын
Just got this on my recommendation and I have a question, why kill the worker and fork another after each request ? Is there a performance benefit and what about the performance penalty in fork+kill code execution ?
@cristianfonseca9404
@cristianfonseca9404 2 жыл бұрын
Great video.! Just a quick question the performance will be the same if I just run in the vps pm2 start -i max ????
@mafiacodes
@mafiacodes 2 жыл бұрын
Just that if u have 1 cpu only one instance and if cpu>1 then instances equal to cpus
@funnyclipz520
@funnyclipz520 2 жыл бұрын
This is good for vertical scaling and only if your machine has more than one CPU thread. If your CPU is single threaded one can also look into kubernetes. After understanding kubernetes pods you can see how beautifully they solved this problem on an infra level. Also great video bro!, keep em coming....
@felixlabayen7861
@felixlabayen7861 Жыл бұрын
how kubernetes solves this in infra level?
@channaveerhakari7319
@channaveerhakari7319 9 ай бұрын
You can use PM2 to run your application in Cluster mode and also it servers as your process manager ie if your application by default crashes then it will be restarted automatically
@nishantbhavasar5047
@nishantbhavasar5047 8 ай бұрын
yes or it has inbuilt load balancer also so it's a good approach then clustor module
@vinaykumarkharwar177
@vinaykumarkharwar177 4 ай бұрын
@@nishantbhavasar5047 using pm2 will start it in cluster mode also. You possibly will have to use load balancer and use pm2 to create different worker threads.
@sanyamarora3011
@sanyamarora3011 3 жыл бұрын
Hi truly, could you please make a tutorial on how to use Typescript in Node projects . P.S You are a great Teacher.
@mafiacodes
@mafiacodes 3 жыл бұрын
Well I guess I will try sometime
@shahbankhan8844
@shahbankhan8844 Жыл бұрын
What kind of terminal ur using I tried multiple time in cmd but it's not working
@the_taskmasterr
@the_taskmasterr 2 жыл бұрын
Hey brother...i like the way you explain things...one doubt in this lecture is that how to apply this cluster module when we are using controllers and routes style of architecture...Hope you will reply my question🤞
@the_taskmasterr
@the_taskmasterr 2 жыл бұрын
@Not Top Voices thanks man i got it
@navaneethpk3535
@navaneethpk3535 2 жыл бұрын
i am able to fork only one worker despite having 4 cores. Any idea why?
@parastouhashemi8620
@parastouhashemi8620 2 жыл бұрын
Great
@mafiacodes
@mafiacodes 2 жыл бұрын
Thank you
@riteshthakur9250
@riteshthakur9250 3 жыл бұрын
Amazing video but can we use this same idea on real time project like i already have a project so can i use this for fast performance in my project
@mafiacodes
@mafiacodes 3 жыл бұрын
Yes
@souravvashisht7153
@souravvashisht7153 Жыл бұрын
Which is better scaling with Cluster create instance upto n number of logiacal core Or using Docker to create multiple container and using nginx as reverse proxy ?
@mafiacodes
@mafiacodes Жыл бұрын
Docker with nginx as reverse proxy
@DTUSEM
@DTUSEM Жыл бұрын
Create content like this you will get more views
@castmonkeys7590
@castmonkeys7590 Жыл бұрын
very clean explanation, but wondering why we need to restart a worker after each request ?
@mafiacodes
@mafiacodes Жыл бұрын
No need
@shahbankhan8844
@shahbankhan8844 Жыл бұрын
Please anyone tell me how to get that log test results
@abhijeetshikharvlog1444
@abhijeetshikharvlog1444 Жыл бұрын
Please make video nodejs microservices
@be_b_50_ankitkumar_singh79
@be_b_50_ankitkumar_singh79 2 жыл бұрын
Sir , how to do if we have routes , like I mean in my project I have a routes folder in which multiple JS files are there and each of it contains GET request, in such case how to perform this?
@rajendrah7316
@rajendrah7316 Жыл бұрын
I am also looking for the same brother, did you get any information on this ? Is yes, could you please share some resources to study please ?
@mdabutalha3165
@mdabutalha3165 2 жыл бұрын
Could you please make it using pm2 package?
@technoinfoworldwide2329
@technoinfoworldwide2329 2 жыл бұрын
i suppose to deploy my site in aws, should i need this node cluster module or aws load balancing is good?please share your thoughts which one is better
@mafiacodes
@mafiacodes 2 жыл бұрын
If u wanna pay use aws else you can do it urself like this or even with nginx
@andreadellamaggiora898
@andreadellamaggiora898 Жыл бұрын
Hello, are you using a special font for coding? if yes which is the name? I really like it. Thank you
@mafiacodes
@mafiacodes Жыл бұрын
operator mono
@knowhowitworks637
@knowhowitworks637 Жыл бұрын
how to get those benchmarks
@ajmaln73
@ajmaln73 Жыл бұрын
so how do i use this with express code
@SaiKumar-tg6ct
@SaiKumar-tg6ct 3 жыл бұрын
👌❤️
@Pralyth
@Pralyth 2 жыл бұрын
I am getting the same results using 1 process as with 8. Both tests are finished in ~0.43 seconds and output ~2290 requests per second. Could this be due to it being such a simple program that it doesn't make a difference that I have multiple processes running on it? I have an Intel I5 8600 processor with 6 cores and ~4000mHz.
@mafiacodes
@mafiacodes 2 жыл бұрын
Can u share your code
@reactm
@reactm 2 жыл бұрын
can you please tell your vs code theme and font family you are using ?
@mafiacodes
@mafiacodes 2 жыл бұрын
Snazzy operator and Operator mono Subscribe like share
@mdjahidulislam9205
@mdjahidulislam9205 3 жыл бұрын
Should i use pm2 or node cluster? Are they same?
@mafiacodes
@mafiacodes 3 жыл бұрын
Pm2 internally uses node cluster
@usama_khalid
@usama_khalid 3 жыл бұрын
great video bro... when we use pm2 in cluster mode then we need redis to keep data same on every instance. Do we need redis etc when deploying node app using cluster module (fork).?
@mafiacodes
@mafiacodes 3 жыл бұрын
U need redis if u want to communicate between processes like for socket.io else u won’t need it.
@fuadcs22
@fuadcs22 Жыл бұрын
Why do I have to kill the process?
@DeepakJangra-up8ek
@DeepakJangra-up8ek 3 жыл бұрын
os.cpus().length will return the number of cores not threads (I beleive). So I have a few doubts 1. If I have 2 cores 4 threads cpu then will it be on full potential this way because it looks like it will create 2 proces only. 2. If I have to host say 3 apps on a 2 threads processor so how should it done. Should I create 2 processes for all 3 apps resulting in 6 total proces?
@mafiacodes
@mafiacodes 3 жыл бұрын
1. yes os.cpus().length gives u the number of cores, if I said something else its slip of my tounge. 2. You should only have the number of instances of you app === number of cores of a CPU 3. If you have a single core CPU then you should run 2 instances, so as to have Zero downtime, in the case one of the instances go down. Note: Regarding ur query about cores and threads, you can read this link and will provide you more insight about that and your question will be answered. www.quora.com/What-does-2-core-4-threads-mean-in-a-cpu-I-am-talking-about-this-cpu-ARK-Intel%C2%AE-Core%E2%84%A2-i5-520M-Processor-3M-Cache-2-40-GHz#:~:text=It%20means%20that%20the%20CPU,pipeline%20to%20process%20another%20thread.
@DeepakJangra-up8ek
@DeepakJangra-up8ek 3 жыл бұрын
@@mafiacodes By this link you mean ... ? PM2 cluster mode with command pm2 start app.js -i max creates 8 apps on my 4 core 8 threads processor and according to you 4 is best. It got me little confused here :/ and also Is your name really Truly (just asking) :|
@mafiacodes
@mafiacodes 3 жыл бұрын
Bro I can’t really come up with an answer since I have an old quad core i5 4670k, and pm2 only does 4 coz of 4 threads. In ur system what do u get for os.cpus.length? Coz what I did was in documentation. And yes my name is Truly.
@DeepakJangra-up8ek
@DeepakJangra-up8ek 3 жыл бұрын
@@mafiacodes OK. Now I am super duper confused on my i5 8250u (4 cores 8 threads) os.cpus().length gives 8.
@mafiacodes
@mafiacodes 3 жыл бұрын
Ok solved, it’s because since it’s hyper threading. U have a 4 core cpu with 8 threads, that means that for each core the os provided u with 2 virtual cores and therefore ur getting 8, for more info read wiki: en.m.wikipedia.org/wiki/Hyper-threading In the end a gr8 question and I think it will help out others also. Solved 💯
@ankurgoel1638
@ankurgoel1638 3 жыл бұрын
cluster module vs child process i am confused between them, cluster module uses cores of cpu while child processes? could you make a difference video? please
@beefnuts2941
@beefnuts2941 2 жыл бұрын
i am new to this but I think cluster is just for making copies of the current app, but child processes could run a different app
@isaiasgarciatrueba
@isaiasgarciatrueba 3 жыл бұрын
Primer Comentario, First comment.
@sourikghosh2597
@sourikghosh2597 3 жыл бұрын
Just asking , will these make our app statefull ???
@mafiacodes
@mafiacodes 3 жыл бұрын
All instances have their own state, if u want to use single state for all of them though not necessary use Redis pub sub.
@shaonahmed4961
@shaonahmed4961 2 жыл бұрын
I have a lot of endpoints, do i have to kill the process on every one of them?
@mafiacodes
@mafiacodes 2 жыл бұрын
This is an example only, you don’t need to kill any process
@shaonahmed4961
@shaonahmed4961 2 жыл бұрын
@@mafiacodes Omg you replied. Thank you so much, great video as always!
@saikumar-eh6df
@saikumar-eh6df 3 жыл бұрын
What is race condition in which cases it occurs, I have heard that using cluster module may cause for race condition.
@mafiacodes
@mafiacodes 3 жыл бұрын
I don’t think so, because it uses round robin approach
@saikumar-eh6df
@saikumar-eh6df 3 жыл бұрын
@@mafiacodes Thanks
@rezaghifary3653
@rezaghifary3653 3 жыл бұрын
thx for the tuto my friend, although i wanna ask what is benefits for killing the worker and fork a new cluster? why cant we just leave the workers without killing it eact time its called.
@mafiacodes
@mafiacodes 3 жыл бұрын
Killing workers is only for demonstration, and you don’t have to do it manually, only if it fails for some reason then a new worker will be spawned.
@rezaghifary3653
@rezaghifary3653 3 жыл бұрын
@@mafiacodes thats what i thought. thx
@ahlambeyoud1709
@ahlambeyoud1709 3 жыл бұрын
this is so weird but when I use cluster module the application gets slower !!!! I get less requests per second, why is that?!
@mafiacodes
@mafiacodes 3 жыл бұрын
Well I know that, and that’s not real. Ur trying to load test a route which simply sends back a response directly (correct me if I m wrong), and now try to use a route which actually does something like db query and other stuff and then loadtest ur app.
@Omer-fr1ze
@Omer-fr1ze 3 жыл бұрын
Hello, something happened to me different than video, I do not know why only same process response all the time for every requests.(Before adding zero downtime property) Do I miss something? Great video btw!
@Omer-fr1ze
@Omer-fr1ze 3 жыл бұрын
It is because in node v4.x and newer versions round-robin scheduling is disabled by default on Windows for performance reasons.Simply just add this code " cluster.schedulingPolicy = cluster.SCHED_RR; " if someone has same problem.
@tahmidurrahman5119
@tahmidurrahman5119 2 жыл бұрын
@@Omer-fr1ze thanks...it solved my issue
How to backup mongodb every night - it's really easy.
17:32
Mafia Codes
Рет қаралды 25 М.
How to create a child process in nodejs (exec, execFile and spawn)
13:39
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 21 МЛН
Stupid Barry Find Mellstroy in Escape From Prison Challenge
00:29
Garri Creative
Рет қаралды 9 МЛН
Они убрались очень быстро!
00:40
Аришнев
Рет қаралды 3 МЛН
The day of the sea 🌊 🤣❤️ #demariki
00:22
Demariki
Рет қаралды 31 МЛН
Scaling your Node.js app using the "cluster" module
13:44
Software Developer Diaries
Рет қаралды 34 М.
All you need to know about "child_process" in Node.js
12:38
Software Developer Diaries
Рет қаралды 2,9 М.
Learn how to do caching in NodeJS using Redis
24:34
Mafia Codes
Рет қаралды 33 М.
PROOF JavaScript is a Multi-Threaded language
8:21
Beyond Fireship
Рет қаралды 263 М.
Mastering Memory Management in Node.js: Tips and Tricks for Better Performance
16:06
Software Developer Diaries
Рет қаралды 26 М.
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 21 МЛН