产卵child_processes的限制是什么?

我必须通过algorithm来进行计算,我build议每个打开的套接字使用一个subprocess,我要做的就是这样:

var spawn = require('child_process').spawn; var child = spawn('node', ['algorithem.js']); 

我知道如何发送参数到algorithm过程以及如何接收结果。

我所关心的是,我可以拥有多less个套接字(每个套接字都会产生一个进程)? 我怎样才能解决这个与我的云托pipe服务提供商? 以便我的应用程序获得自动缩放?

什么是推荐的节点js云托pipe提供商?

最后,这是使用subprocess的好方法吗?

是的,这是一个公平的方法,当你不得不在节点上做一些繁重的处理。 但是,启动一个新的进程会带来一些开销,所以要注意。 您可以打开的套接字(文件描述符)的数量受操作系统的限制。 在Linux上,使用ulimit -utility可以看到限制。

一种替代方法,即删除套接字/进程数量的担心,是运行一个单独的algorithm/计算服务器。 这个服务器可以产生N个工作线程,并在套接字上侦听。 当接收到计算请求时,这可以例如排队并由第一可用线程处理。 这种方法的一个优点是你的计算服务器可以在任何机器上运行,为你的节点实例释放资源。