Home >Web Front-end >JS Tutorial >Learning the cluster module in Node
This article mainly introduces the cluster module of Node learning record. The content is quite good. I will share it with you now and give it as a reference.
In the context of today's machines with multi-core CPUs, Node's single-threaded design can no longer fully "squeeze" machine performance. So starting from v0.8, Node has added a built-in module - "cluster", hence the name. It can realize the cluster function by managing a bunch of child processes through a parent process.
var cluster = require('cluster'); var http = require('http'); var numCPUs = require('os').cpus().length; // 获取CPU的个数 if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function(worker, code, signal) { console.log('worker ' + worker.process.pid + ' died'); }); } else { http.createServer(function(req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(8000); }
Use the isMaster attribute to determine whether it is a Master process. If so, fork the child process, otherwise start a server. Each HTTP server can listen to the same port. However, in actual projects, our startup code is generally encapsulated in app.js. It is not elegant to embed the entire startup logic in the above if else. So, we can do this:
var cluster = require('cluster'); var numCPUs = require('os').cpus().length; if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } // 其它代码 } else { require("./app.js"); }
The simplicity is that the original application logic does not need to know whether it is in a cluster or unilaterally. (Of course, if the application maintains certain states in memory, such as sessions, it needs to use some mechanism to share them. I won’t go into details here)
The above is the entire content of this article. I hope it will be useful to everyone. Learning will be helpful. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
nodejs method to implement bigpipe asynchronous loading of pages
About node.js system based on fs module Methods for reading and writing files and directories
The above is the detailed content of Learning the cluster module in Node. For more information, please follow other related articles on the PHP Chinese website!