我正在阅读关于nodejs是sigle线程,但能够使用集群模块完全使用,我假设一个负载均衡器,cpu的功能。
我对nodejs没有多少经验,但我想了解使用集群之间存在什么差异,并使用相同的数据库在同一台机器上启动多个nodejs应用程序,并在必要时使用特定服务与另一个进行交互,使用不同的端口,并由充当负载均衡器的主节点实例处理。
有些实例可能仅供cpu密集使用(对于我来说,我使用特定的c ++编译的专用exes来运行节点作为子进程)。
答案 0 :(得分:1)
cluster
只生成节点子进程,每个子进程都有一个对父进程开放的双向IPC通道。
cluster
还允许您自动加载平衡与节点服务器的连接,或者您可以显式地将TCP套接字和其他特殊对象传递给子进程,以便它们处理而不是父进程。 cluster
文档显示了这两个功能的示例。
如果您已经编译了每个核心要执行的可执行文件,并且不需要在子进程中执行任何JavaScript,那么您可以跳过cluster
并只生成require('os').cpus().length
个实例已编译的可执行文件。否则,您可以使用cluster
然后从每个节点子进程生成已编译的可执行文件,如果您需要先进行一些准备,或者您有条件地生成已编译的可执行文件。