node cluster是否适合做http server以外的事情?
网上看到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开源项目精选✨
新出了 worker_threads 🤔