Node.js 集群

Posted

技术标签:

【中文标题】Node.js 集群【英文标题】:Node.js Cluster 【发布时间】:2016-07-08 21:47:30 【问题描述】:

我正在用 Node.js 编写一个提供动态网页的应用程序。我希望这个应用程序能够扩展到多个 CPU 内核,因此我决定使用集群为每个 CPU 内核创建一个工作线程。

我还使用第 3 方 API,它需要经常轮询以检查更改,并且经常需要根据用户输入进行查询和缓存。由于此 API 有速率限制,我希望在所有工作人员之间有一个 API 实例和缓存。

在多个工作人员之间共享资源(缓存和第 3 方 API)并与之通信的最佳方式是什么?我应该为资源创建一个单独的工作人员,还是使用主工作人员?

【问题讨论】:

【参考方案1】:

由于此 API 有速率限制,我希望有一个 API 实例并在所有工作人员之间进行缓存。

理想情况下,您应该从主服务器进行这些 API 查询,然后根据需要使用 process.send 将它们发送给工作人员。

【讨论】:

用户也可以通过工作线程从 API 请求数据,所以我需要一种从工作线程请求数据的方法。 是的。只需将其从 master 发送给工人 但是我要如何向master请求数据呢?

以上是关于Node.js 集群的主要内容,如果未能解决你的问题,请参考以下文章

使用PM2管理Node.js集群

Node.js 多服务器集群

Node.JS 内置集群还是 PM2 集群?

如何使用 Node.js 连接到我的 redshift 集群?

Node.js 集群 - 最佳工作人员数量

Node.JS、Socket.IO 和集群中的 WebSocket 握手不起作用