同一台机器上的NodeJS多个应用程序——关于多线程
NodeJS multiple applications on same machine - about multithread
我正在阅读关于 nodejs 是单线程的,但能够使用集群模块来充分利用,我假设有一个负载平衡器,cpu 的功能。
我对 nodejs 的经验不多,但我想了解使用集群与在同一台机器上使用相同的数据库启动多个 nodejs 应用程序并使用特定服务相互交互之间有什么区别如有必要,使用不同的端口,并由充当负载平衡器的主节点实例处理。
一些实例可以留给 cpu 仅供密集使用(对于这些,我倾向于使用特定的 c++ 编译的专用 exes 到 运行 节点作为子进程)。
cluster
仅生成节点子进程,每个子进程都有一个向父进程开放的双向 IPC 通道。
cluster
还允许您自动负载平衡到节点服务器的连接,或者您可以显式地将 TCP 套接字和其他特殊对象传递给子进程,让它们代替父进程处理。 cluster
文档显示了这两个功能的示例。
如果您已经编译了要按内核执行的可执行文件,并且不需要在子进程中执行任何 JavaScript,那么您可以跳过 cluster
并直接生成require('os').cpus().length
个已编译可执行文件的实例。否则你可以使用 cluster
然后从每个节点子进程生成编译的可执行文件如果你需要先做一些准备或者你有条件地生成编译的可执行文件。
我正在阅读关于 nodejs 是单线程的,但能够使用集群模块来充分利用,我假设有一个负载平衡器,cpu 的功能。
我对 nodejs 的经验不多,但我想了解使用集群与在同一台机器上使用相同的数据库启动多个 nodejs 应用程序并使用特定服务相互交互之间有什么区别如有必要,使用不同的端口,并由充当负载平衡器的主节点实例处理。
一些实例可以留给 cpu 仅供密集使用(对于这些,我倾向于使用特定的 c++ 编译的专用 exes 到 运行 节点作为子进程)。
cluster
仅生成节点子进程,每个子进程都有一个向父进程开放的双向 IPC 通道。
cluster
还允许您自动负载平衡到节点服务器的连接,或者您可以显式地将 TCP 套接字和其他特殊对象传递给子进程,让它们代替父进程处理。 cluster
文档显示了这两个功能的示例。
如果您已经编译了要按内核执行的可执行文件,并且不需要在子进程中执行任何 JavaScript,那么您可以跳过 cluster
并直接生成require('os').cpus().length
个已编译可执行文件的实例。否则你可以使用 cluster
然后从每个节点子进程生成编译的可执行文件如果你需要先做一些准备或者你有条件地生成编译的可执行文件。