Nodejs启动http服务,充分利用操作系统os的多核特性

要充分利用操作系统os的多核特性,只需要配置如下即可:

var express = require('express');
var config = require('./config');
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
var app = express();

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
    cluster.on("exit", function(worker, code, signal) {
        cluster.fork();
    });
} else {
    var server = app.listen(config.app.port, function () {
        var host = server.address().address;
        var port = server.address().port;
        console.log('应用实例,访问地址为 http://%s:%s', host, port);

    });
}

上面的示例代码将使用 cluster 模块重构。 cluster 模块可以让你很容易的创建多个分享端口的进程。每一个进程使用一个系统核心,也就是代码中的 numCPUs 变量中cpu核心的一个。每一个子进程都实现了HTTP server,并监听指定的端口。


输出结果为:

感谢您的阅读,希望对您有帮助,本文版权归 #惊讶# 所有

评论 (0)