child_process.fork和cluster.fork之间的有效区别是什么?

时间:2012-11-13 19:44:20

标签: node.js

我知道cluster.fork将允许多个进程在同一个端口上侦听,我还想知道当你的一些工作人员不是监听器/处理程序时,支持这个的额外开销是多少对于tcp服务?

我有一项服务,我也想启动几个工作人员。例如:2个Web服务侦听器进程和3个工作器实例。最好是为所有人使用集群,还是为2个Web服务集群,为工作人员更好地使用child_process?

我不知道节点中的内部结构,但认为对于我自己和其他人来说,更好地了解根据不同的需求采取哪种路线会很好。目前,我正在为所有流程使用群集。

2 个答案:

答案 0 :(得分:11)

cluser.forkchild_process.fork之上实施。 cluster.fork带来的额外内容是,它将使您能够侦听共享端口。如果您不想要它,只需使用child_process.fork即可。所以,是的,使用集群用于Web服务器,将child_process用于工作者。

答案 1 :(得分:0)

Cluster是Node.js的模块,其中包含一组函数和属性,这些函数和属性可帮助开发人员分叉流程,使他们可以利用多核系统。 使用集群模块,子进程和几个部分的创建和共享变得容易。在单个线程中,node.js的各个实例专门运行,并利用各种生态系统,启动了node.js集群,以分配负载。

开发人员可以通过child_process模块​​访问操作系统功能,这可以通过在子进程中运行任何系统命令来实现。子进程的输入流可以被控制,开发人员也可以监听输出流。 可以使用Node的child_process模块​​轻松旋转子流程,并且借助消息传递系统,这些子流程可以轻松相互通信