Multi-Process NodeJS

2017-12-07

多核服务器可以采用多进程处理增加性能. NodeJs 提供 cluster 模块来实现这功能, 感觉它的 API 和 C 语言还是比较像的.

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);
}

可以简单转译为 C 语言代码

int numCPUS = //num CPUS
for (int i = 0; i < numCPUs; i++) {
    if(fork()==0){
        // createServer
    }
}

这个设置已经被用在GHOTI-CLI中了

Go Back

随便看看 :D