问题标签 [node-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
719 浏览

node.js - 多服务器集群节点上的 Firebase 事件监听

我在节点上使用 firebase 实时数据库。我正在使用节点集群来分叉不同的子进程。对于每个进程,firebase 事件侦听器都会被初始化。但我只想在我的应用程序中听一次 firebase 事件。

节点应用程序的多个实例启动多个观察者,当我基于侦听器在 firebase db 上执行某些更新时,这会改变 firebase 数据库中数据的完整性。我,稍后还将在多个 aws 实例上集群节点应用程序。

我的代码看起来像这样

我想知道如何设置多个节点服务器集群在一起,因为每台服务器都有互联网连接并且可以监听 firebase 事件。但是观察者应该只在所有服务器上运行一次代码。

0 投票
0 回答
34 浏览

node.js - Worker 停止向 master 发送数据

我有一个应用程序(主),它将工作分配给 n 数量的工人。在工作人员内部,js我将控制台输出挂钩如下:

master 现在负责将所有传入消息记录到 std 之外的文件中。完成以下代码和模块:

我在日志中注意到一名工人在 1.5 天后停止发送消息。在主人我有工人退出检测:

正如我在日志中看到的那样,没有触发退出。目前我只有假设,我想听听你的意见。会不会是因为:

  1. 同步文件日志记录。
  2. 一名工人自行断开连接。
  3. 一个工人退出了,退出事件被错过了。
  4. 你的意见...
0 投票
2 回答
903 浏览

node.js - Nodejs集群仅将任务分配给一个工人(任何)

我面临的问题是该项目已经编程cluster用于分发任务。

我有一个基本想法,即这段代码用于在 cpu 之间分配任务并保持服务器运行,以防一个 cpu 出现故障。

问题是: 一切正常,直到我需要开始使用节点来安排cron工作(将发送电子邮件)。cron 现在由所有工作人员同时运行,并且根据服务器上有多少 cpu 将电子邮件发送给工作人员。我通过将工作安排为:

这在本地系统中工作得很好,但在登台服务器中失败可能是因为 CPU 与这个项目对齐。

有没有办法只获得第一个免费工人并将任务分配给他。

现在我试过了

0 投票
2 回答
1474 浏览

javascript - NodeJS集群,真的需要吗?

我决定要研究使用 NodeJS 服务器处理大量流量的最佳方法是什么,我在 2 个具有 1GB RAM / 2 个 CPU 无集群服务器代码的数字海洋服务器上做了一个小测试:

集群服务器代码:

我向这些服务器发送了压力测试请求,除了集群服务器将处理更多请求,但它没有发生,两台服务器在相同的负载下崩溃,尽管集群上运行了 2 个节点服务,非节点上运行了 1 个服务-簇。

现在我想知道为什么?我做错什么了吗?

也许还有其他东西使服务器达到断点?两台服务器都以约 800 rps 的速度崩溃

0 投票
0 回答
33 浏览

node.js - 在 Express 服务器之间重定向

我正在制作一个io游戏。该应用程序分为主线程和工作线程。在每个线程中都有一个 Express 服务器正在运行,还有一个 Socket.io 服务器绑定到它。我希望能够在这些服务器之间切换,所以线程自己完成所有工作。我如何在这些线程之间重定向?如果我使用代理,将有一个主线程,并且 redirect() 或位置更改不适用于端口。服务器代码受到这个这个例子的启发。

0 投票
0 回答
173 浏览

node.js - 使用 redis 缓存帖子

我有一个包含群组的论坛,用户一直在创建新群组,目前我正在使用带有 ttl 的节点缓存来缓存群组及其内容(帖子、喜欢和评论)。

服务器在乞讨时工作得很好,但是当更多人开始使用该应用程序时性能下降,所以我决定使用 node.js 集群模块作为下一步来提高性能。

节点缓存会导致一致性问题,同一组可能会缓存在两个工作人员中,因此如果其中一个更改了,另一个将不知道(除非您这样做)。

我想到的第一个解决方案是使用 redis 来存储整个组,并借助 redis 数据类型(集合和哈希对象)来存储内容,但我不知道这有多有效。

另一种解决方案是使用 redis 将请求映射到正确的工作人员,在这种情况下,缓存的数据在工作人员中随机分布,因此当工作人员收到与某个组相关的请求时,他会检查组所有者(持有该组的工作人员)内存中的组实例)并要求他使用 node-ipc 获取所需的数据,然后将其返回给用户。

第一个解决方案有问题吗?
第二种解决方案不提供公平性(如果所有受欢迎的群体都落在同一个工人身上),是否有解决方案?

有什么建议么?
提前致谢

0 投票
1 回答
36 浏览

node.js - Moongose 未连接到集群节点中的数据库

我有一个集群 nodejs 应用程序(1 个 Master 和 4 个 Workers)的设置。

主人实例化工人并创建一堆他们可以抓取的任务。

每个工作人员都像这样启动一个数据库连接:

我的数据库类如下所示:

还有我的任务课:

当我执行代码时,bulkUpdate变量在之后未定义,initializeUnorderedBulkOp()因此我无法.find()对其执行 a 。

经过一番研究,似乎月鹅可能还没有连接。问题是我在执行console.log('connected');之前有控制台日志initializeUnorderedBulkOp(),所以我认为它是连接的。

我的问题是,问题在哪里?使用集群的事实是否会混淆猫鼬或我初始化它的方式?

谢谢

0 投票
0 回答
707 浏览

javascript - [节点js | 集群]:如何等待我所有工人的回答?

我有一个集群节点应用程序,我正在寻找一种方法来从一个请求中获取所有工作人员的状态。

我用快递问masten,但它与快递无关。有一个请求,我想要这样的东西:

要发送明确的答案,我需要等待所有工作人员的答案,然后将它们连接起来。但问题是:如何等待工人而不是简单的听众的具体回答?

这是集群应用程序的代码示例。我正在尝试在http://localhost:8000/的请求中获取先前的 Json

提前致谢 :)

0 投票
0 回答
30 浏览

javascript - 我的一半集群工作人员没有从文件中读取任何内容 - Node.js

我有麻烦,理解,为什么我创建的一半工作人员能够读取文件的内容,而其中一半人什么也没读。

这是我的代码:

这就是输出的内容。

...我不会转储所有内容,但最后你可以看到,第 5 个工作人员从文本文件中获取数据,所以基本上,当我创建 8 个工作人员时,前 4 个工作人员不知何故从文件中读取任何内容,而其他4个阅读它没有问题。

很清楚,当输出显示 [''] 时,我是说工人什么也没读

0 投票
1 回答
355 浏览

mysql - 如何跨节点集群共享一个资源

我正在使用节点cluster模块,每个工作人员都加载一个数据库连接。

index.js

数据库.js

我的理解是,每次产生一个工人时,它都会初始化db.js,这将创建一个新的池/连接到 mysql。

有没有另一种方法来构造它,以便所有工作人员共享同一个 mysql 池?