我们将首先使用 NodeJS 的内置集群模块,然后一旦我们了解了它的工作原理,我们将使用进程管理器 pm2 包来简化操作。然后,我们将稍微更改示例并使用工作线程模块来创建多个线程。 集群模块 现在,由于 NodeJs 是单线程的,所以无论你有多少个核心,它都只会使用 CPU 的一个核心。这对于输入/输出操作来说完全没问题,但如果代码占用大量 CPU,Node 能问题。
为了解决这个问题,我们可以使用 cluster 模块。此模块允许 阿塞拜疆电报筛查 我们创建与父进程共享相同服务器端口的子进程。 这样,我们就可以利用 CPU 的所有核心。为了理解这意味着什么以及它是如何工作的,让我们创建一个简单的 NodeJs 应用程序作为我们的示例。 我们首先创建一个名为 nodeJs-scaling 的新文件夹,然后在该文件夹中创建一个名为 no-cluster.js 的文件。
我们使用它来创建一个具有两个端点的服务器,一个基本端点和一个慢速页面端点。我们使用此结构的目的是,当我们转到基本端点时,它将像往常一样运行并打开页面。但是,正如您所见,由于一旦我们转到慢速页面端点就会运行 for 循环,因此页面将需要很长时间才能加载。虽然这是一个简单的例子,但它是了解该过程如何工作的好方法。 现在,如果我们通过运行 node cluster.js 启动服务器,然后通过 CURL 向基本端点发送请求,或者只是在浏览器上打开页面,它将很快加载。