NodeJS在同一台机器上的多个应用程序 - 关于多线程

时间:2016-01-31 02:38:50

标签: node.js multithreading multiple-instances

我正在阅读关于nodejs是sigle线程,但能够使用集群模块完全使用,我假设一个负载均衡器,cpu的功能。

我对nodejs没有多少经验,但我想了解使用集群之间存在什么差异,并使用相同的数据库在同一台机器上启动多个nodejs应用程序,并在必要时使用特定服务与另一个进行交互,使用不同的端口,并由充当负载均衡器的主节点实例处理。

有些实例可能仅供cpu密集使用(对于我来说,我使用特定的c ++编译的专用exes来运行节点作为子进程)。

1 个答案:

答案 0 :(得分:1)

cluster只生成节点子进程,每个子进程都有一个对父进程开放的双向IPC通道。

cluster还允许您自动加载平衡与节点服务器的连接,或者您可以显式地将TCP套接字和其他特殊对象传递给子进程,以便它们处理而不是父进程。 cluster文档显示了这两个功能的示例。

如果您已经编译了每个核心要执行的可执行文件,并且不需要在子进程中执行任何JavaScript,那么您可以跳过cluster并只生成require('os').cpus().length个实例已编译的可执行文件。否则,您可以使用cluster然后从每个节点子进程生成已编译的可执行文件,如果您需要先进行一些准备,或者您有条件地生成已编译的可执行文件。