我必须通过算法进行计算,我被建议为每个打开的套接字使用子进程,我即将做的事情是这样的:
var spawn = require('child_process').spawn;
var child = spawn('node', ['algorithem.js']);我知道如何向算法过程发送参数,以及如何接收结果。
我关心的是,我可以拥有多少个套接字(每个套接字将产生一个进程)?我如何与我的云托管提供商解决此问题?这样我的应用就可以自动缩放了?
推荐的node js云托管提供商是什么?
最后,这是使用子进程的好方法吗?
发布于 2013-03-24 22:21:41
是的,当你必须在节点中做一些繁重的处理时,这是一种公平的方法。但是,启动一个新进程会带来一些开销,因此要注意。您可以打开的套接字(文件描述符)的数量受到操作系统的限制。在Linux上,可以使用例如ulimit-utility来查看这些限制。
另一种方法是运行单独的算法/计算服务器,以消除对套接字/进程数量的担忧。此服务器可以产生N个工作线程,并将侦听套接字。当接收到计算请求时,这可以例如由第一可用线程排队和处理。这种方法的一个优点是您的计算服务器可以在任何机器上运行,从而为您的节点实例释放资源。
https://stackoverflow.com/questions/15598266
复制相似问题