繁体   English   中英

NodeJS 集群,有用的用例?

[英]NodeJS Cluster, useful use cases?

我正在研究用例,向几个朋友介绍使用 nodejs 进行集群计算。

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

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

  • 集群网络服务器(如 REST 的 API 服务器) (原因:负载平衡)

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

这让我想到拥有工作池,每个池做不同的部分,比如单独处理与数据库的连接,生成 PDF 等。

试图了解从工人到主人的关系,我摆弄了一下,但我仍然不确定:

  • 是 nodejs 集群只适合让相同的进程能够并行运行(文档建议它)
  • 或者让 nodejs 集群工作者像池中的单独任务一样有意义。

.. 导致:哪些用例实际上是使用 nodejs 的真实世界用例?

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

是 nodejs 集群只适合让相同的进程能够并行运行(文档建议它)

有点。 内置的集群模块只是产生与正在运行的脚本相同的子进程。 您始终可以以其他方式执行子进程。

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

任何对您和您的应用程序有用的东西! 如果您有理由不遵守惯例,则没有理由遵守惯例。

导致:哪些 [集群] 用例实际上是使用 nodejs 的真实世界?

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

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

我确信有一些应用程序只是在单个线程中受 CPU 限制来运行 JavaScript,但对许多应用程序来说,I/O 是一个更大的阻塞器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM