NodeJS集群,有用的用例?

时间:2019-03-17 04:09:47

标签: node.js cluster-computing

我正在研究用例,以向一些朋友介绍使用nodejs的集群计算。

我的目标是解释一些现实生活中的nodejs集群案例,以及为什么nodejs有助于创建这些特殊案例。

到目前为止,确实有一个案例吸引了我:

  • 群集化Web服务器(例如REST的API服务器)(原因:负载平衡)

我看到了有关执行昂贵计算的示例,并提到了在不同线程/处理器上进行计算的优势。

这使我开始考虑拥有工作池,每个工作池执行不同的部分,例如仅处理与数据库的连接,生成PDF等。

我试图fiddled around来了解工人与船长之间的联系,但我仍然不确定:

  • nodejs集群仅适合于具有相同进程的并行运行能力(文档提示)
  • 或者让nodejs集群工作者像池中的单独任务一样有意义。

..结果:使用Node.js的实际用例是什么?

希望这是可以理解的。 意见非常受欢迎。

1 个答案:

答案 0 :(得分:1)

  

nodejs集群仅适合于具有相同进程的并行运行能力(文档提示)

排序。内置的集群模块只是产生与正在运行的脚本相同的子进程。您总是可以通过其他方式执行子进程。

  

或者让nodejs集群工作者像池中的单独任务那样有意义

任何适用于您和您的应用程序的东西!如果您有理由不遵守约定,则没有理由。

  

结果:nodejs实际使用了哪些[集群]用例?

(我假设您是在询问集群的实际使用案例。)

对于大多数应用程序(无论如何,我已经看到并使用过),可以通过单个Node.js进程完全饱和/利用系统资源。仅仅因为您的代码是单线程的,并不意味着您要调用的所有本机代码都是。许多人都使用集群模块,因为他们认为这是充分利用主机上所有CPU的唯一方法。这是由于对Node.js文档的常见误解。

我敢肯定,在运行JavaScript的单个线程中,有些应用程序仅受CPU限制,但是对于许多人来说,I / O是一个更大的阻止器。