javascript – 为什么node.js不适合重型CPU应用程序?

Node.js服务器对于I / O和大量的客户端连接非常有效。但是与传统的多线程服务器相比,为什么node.js不适合重型CPU应用程序?

我在这读Felix Baumgarten

节点是,尽管它的异步事件模型,本质上是单线程。当您启动一个Node进程时,您运行的是一个单个进程,单个内核上有一个线程。所以你的代码不会并行执行,只有I / O操作是并行的,因为它们是异步执行的。因此,长时间运行的CPU任务将阻止整个服务器,通常是一个坏主意。

假设您只是启动一个这样的Node进程,就可以并行运行多个Node进程。这样,您仍然可以从多线程体系结构中获益,尽管单个Node进程没有。您只需要在前端安装一些负载均衡器,就可以沿着所有的Node进程分发请求。

另一个选择是使CPU可以在单独的进程中工作,并使Node与其他操作进行交互,而不是执行本身。

相关内容:

> Node.js and CPU intensive requests
> Understanding the node.js event loop

http://stackoverflow.com/questions/16974557/why-is-node-js-not-suitable-for-heavy-cpu-apps

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 为什么node.js不适合重型CPU应用程序?