NodeJS 集群,有用的用例?
NodeJS Cluster, useful use cases?
我正在研究用例向几个朋友介绍使用 nodejs 进行集群计算。
我的目标是解释一些现实生活中的 nodejs 集群案例,以及为什么 nodejs 有助于创建这些特定案例。
到目前为止,真正吸引我的是一个案例:
- 集群网络服务器(类似于 REST 的 API 服务器)(原因:负载平衡)
我看到了有关进行昂贵计算的示例,提到了在不同 thread/processor 上这样做的优势。
这促使我考虑拥有工作池,每个池执行不同的部分,例如仅处理与数据库的连接、生成 PDF 等。
试图了解从工人到主人的关系,我fiddled around但我仍然不确定:
- nodejs 集群仅适用于让相同的进程能够 运行 并行(文档建议)
- 或者让 nodejs 集群工作人员喜欢池中的单独任务是否有意义。
.. 导致:哪些用例实际上是 nodejs 的真实用例?
希望这是可以理解的。
非常欢迎提出意见。
are nodejs clusters are only suited for having the same process be able to run in parallel (documentation suggests it)
有点。内置集群模块只是生成恰好与 运行 相同的脚本的子进程。您总是可以通过其他方式执行子进程。
or does it makes sense to have nodejs cluster workers like separate tasks in pools
任何适合您和您的应用程序的东西!如果你有理由不遵守惯例,就没有理由遵守惯例。
resulting in: what [cluster] use cases are actually real world with nodejs?
(我假设您问的是集群的真实用例。)
对于大多数应用程序(我已经看到并使用过的应用程序),可以使用单个 Node.js 进程完全 saturate/utilize 系统资源。仅仅因为您的代码是单线程的并不意味着您调用的所有本机代码都是。许多人使用集群模块,因为他们认为这是充分利用主机上所有 CPU 的唯一方法。这是对 Node.js 文档的常见误解。
我确定有一些应用程序只是 CPU-绑定在 运行 JavaScript 的单个线程中,但对于许多应用程序来说,I/O 是一个更大的阻碍。
我正在研究用例向几个朋友介绍使用 nodejs 进行集群计算。
我的目标是解释一些现实生活中的 nodejs 集群案例,以及为什么 nodejs 有助于创建这些特定案例。
到目前为止,真正吸引我的是一个案例:
- 集群网络服务器(类似于 REST 的 API 服务器)(原因:负载平衡)
我看到了有关进行昂贵计算的示例,提到了在不同 thread/processor 上这样做的优势。
这促使我考虑拥有工作池,每个池执行不同的部分,例如仅处理与数据库的连接、生成 PDF 等。
试图了解从工人到主人的关系,我fiddled around但我仍然不确定:
- nodejs 集群仅适用于让相同的进程能够 运行 并行(文档建议)
- 或者让 nodejs 集群工作人员喜欢池中的单独任务是否有意义。
.. 导致:哪些用例实际上是 nodejs 的真实用例?
希望这是可以理解的。 非常欢迎提出意见。
are nodejs clusters are only suited for having the same process be able to run in parallel (documentation suggests it)
有点。内置集群模块只是生成恰好与 运行 相同的脚本的子进程。您总是可以通过其他方式执行子进程。
or does it makes sense to have nodejs cluster workers like separate tasks in pools
任何适合您和您的应用程序的东西!如果你有理由不遵守惯例,就没有理由遵守惯例。
resulting in: what [cluster] use cases are actually real world with nodejs?
(我假设您问的是集群的真实用例。)
对于大多数应用程序(我已经看到并使用过的应用程序),可以使用单个 Node.js 进程完全 saturate/utilize 系统资源。仅仅因为您的代码是单线程的并不意味着您调用的所有本机代码都是。许多人使用集群模块,因为他们认为这是充分利用主机上所有 CPU 的唯一方法。这是对 Node.js 文档的常见误解。
我确定有一些应用程序只是 CPU-绑定在 运行 JavaScript 的单个线程中,但对于许多应用程序来说,I/O 是一个更大的阻碍。