我正在研究用例,以向一些朋友介绍使用nodejs的集群计算。
我的目标是解释一些现实生活中的nodejs集群案例,以及为什么nodejs有助于创建这些特殊案例。
到目前为止,确实有一个案例吸引了我:
我看到了有关执行昂贵计算的示例,并提到了在不同线程/处理器上进行计算的优势。
这使我开始考虑拥有工作池,每个工作池执行不同的部分,例如仅处理与数据库的连接,生成PDF等。
我试图fiddled around来了解工人与船长之间的联系,但我仍然不确定:
..结果:使用Node.js的实际用例是什么?
希望这是可以理解的。 意见非常受欢迎。
答案 0 :(得分:1)
nodejs集群仅适合于具有相同进程的并行运行能力(文档提示)
排序。内置的集群模块只是产生与正在运行的脚本相同的子进程。您总是可以通过其他方式执行子进程。
或者让nodejs集群工作者像池中的单独任务那样有意义
任何适用于您和您的应用程序的东西!如果您有理由不遵守约定,则没有理由。
结果:nodejs实际使用了哪些[集群]用例?
(我假设您是在询问集群的实际使用案例。)
对于大多数应用程序(无论如何,我已经看到并使用过),可以通过单个Node.js进程完全饱和/利用系统资源。仅仅因为您的代码是单线程的,并不意味着您要调用的所有本机代码都是。许多人都使用集群模块,因为他们认为这是充分利用主机上所有CPU的唯一方法。这是由于对Node.js文档的常见误解。
我敢肯定,在运行JavaScript的单个线程中,有些应用程序仅受CPU限制,但是对于许多人来说,I / O是一个更大的阻止器。