1

我必须通过算法进行计算,我被建议为每个打开的套接字使用一个子进程,我要做的是这样的:

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

我知道如何向算法过程发送参数以及如何接收结果。

我关心的是,我可以拥有多少个套接字(每个套接字将产生一个进程)?如何通过我的云托管服务提供商解决此问题?以便我的应用程序自动缩放?

推荐的 node js 云托管提供商是什么?

最后,这是使用子进程的好方法吗?

4

1 回答 1

4

是的,当您必须在节点中进行一些繁重的处理时,这是一种公平的方法。但是,启动一个新进程会带来一些开销,因此请注意。您可以打开的套接字(文件描述符)的数量受操作系统的限制。在 Linux 上,可以使用例如ulimit -utility 来查看限制。

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

于 2013-03-24T14:21:41.150 回答