node cluster是否适合做http server以外的事情?
发布于 6 年前 作者 bi-kai 2851 次浏览 来自 问答

网上看到nodejs cluster都是以简单的HTTP server为例,虽然用js做计算型业务不是最优方案,但能充分利用多核性能,我觉得对于时效性要求不高的场合也可一用。 中文官网API看到这样一句:

虽然cluster模块主要用于网络相关的情况,但同样可以用于其他需要worker进程的情况。

const cluster = require('cluster');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
    for (let i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
    cluster.on('exit', (worker, code, signal) => {});
} else {
    // do worker work.
    // ...
}

我的问题是,将node cluster用于非http场景下的最佳实践,上述代码是最佳姿势么?

2 回复

cluster就是基于标准进程实现的,主要是统一监听端口进行负载均衡。如果是其他需求,何必套这层壳呢,直接用标准进程或线程就行了。

来自✨ Node.js开源项目精选

回到顶部