Tag:

NodeJS分叉进程(1个VM,多个处理器)VS多个VM,1个进程

我正在NodeJS中开发一个服务,它将使用tesseract OCR引擎的节点包装器从图像创build文本文件。 我希望它是一个不断运行的服务,由暴发户启动并重新启动(崩溃)。 我可以select使服务器(运行这个服务器的虚拟机)具有大内存和磁盘空间的多个核心机器,或者我可以select创build4个或5个小型虚拟机,每个虚拟机1个内核,1 GB内存,相对较小磁盘大小。 采用第一种方法,我必须分叉各种subprocess以利用所有内核,这增加了代码的复杂性。 另一方面,我只有一个虚拟机担心。 第二种方法,我不必担心分叉subprocess,但我将不得不创build和configuration多个虚拟机。 每种方法还有没有其他的利弊呢?

为什么node.js可以在if语句中调用clustet.fork()?

对于一个典型的C程序,我们做这样的事情来创build一个新的过程: int main(void) { pid_t childPID; childPID = fork(); if(childPID >0){ do something } else if(childPID == 0){ do something } else { do something } } 但是在一个node.js程序中,fork通常在if语句中完成: var cluster = require('cluster'); if (cluster.isMaster) { do something cluster.fork() } else{ do something for the child process } 为什么我们可以在Node.js的if语句中创buildsubprocess? 为什么subprocess不跳过else块? 谢谢!