Node.js是否适合以下场景?

时间:2013-01-08 08:52:36

标签: node.js rest webserver

我正在构建在Unix机器上运行的Web服务器,方案如下:

用户可以使用他/她的手机拍照并上传到服务器,然后服务器将运行图像处理可执行文件来处理图像(识别图像)并将结果返回给用户的手机。

node.js是否适合这种情况?或者其他技术是否合适?

我主要担心的是并发性。图像处理可执行文件是用C ++编写的应用程序,我只想从node.js调用应用程序并返回结果。但是,node.js不是多线程的,对吧?这意味着必须一个接一个地处理上传的图像。有可能并行吗?

1 个答案:

答案 0 :(得分:1)

Node.JS可以使用C扩展在后台工作。 (许多模块如hiredis也编译为C)。

Node.JS是事件驱动的,这也是它为单线程的原因。它非常适合与I / O或网络延迟有关的并发任务,因为它是单线程事件,在执行另一个操作之前不需要等待第一个操作。

什么Node.JS不适合像cpu密集型操作,如图像处理和提供静态文件。您可以通过fork一个新进程来扩展节点(节点有集群库来执行此操作。)但您必须有一个通道来自己在每个进程之间进行通信。我建议redis处理中央数据。