问题标签 [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.
node.js - 多服务器集群节点上的 Firebase 事件监听
我在节点上使用 firebase 实时数据库。我正在使用节点集群来分叉不同的子进程。对于每个进程,firebase 事件侦听器都会被初始化。但我只想在我的应用程序中听一次 firebase 事件。
节点应用程序的多个实例启动多个观察者,当我基于侦听器在 firebase db 上执行某些更新时,这会改变 firebase 数据库中数据的完整性。我,稍后还将在多个 aws 实例上集群节点应用程序。
我的代码看起来像这样
我想知道如何设置多个节点服务器集群在一起,因为每台服务器都有互联网连接并且可以监听 firebase 事件。但是观察者应该只在所有服务器上运行一次代码。
node.js - Worker 停止向 master 发送数据
我有一个应用程序(主),它将工作分配给 n 数量的工人。在工作人员内部,js
我将控制台输出挂钩如下:
master 现在负责将所有传入消息记录到 std 之外的文件中。完成以下代码和模块:
我在日志中注意到一名工人在 1.5 天后停止发送消息。在主人我有工人退出检测:
正如我在日志中看到的那样,没有触发退出。目前我只有假设,我想听听你的意见。会不会是因为:
- 同步文件日志记录。
- 一名工人自行断开连接。
- 一个工人退出了,退出事件被错过了。
- 你的意见...
node.js - Nodejs集群仅将任务分配给一个工人(任何)
我面临的问题是该项目已经编程cluster
用于分发任务。
我有一个基本想法,即这段代码用于在 cpu 之间分配任务并保持服务器运行,以防一个 cpu 出现故障。
问题是:
一切正常,直到我需要开始使用节点来安排cron
工作(将发送电子邮件)。cron 现在由所有工作人员同时运行,并且根据服务器上有多少 cpu 将电子邮件发送给工作人员。我通过将工作安排为:
这在本地系统中工作得很好,但在登台服务器中失败可能是因为 CPU 与这个项目对齐。
有没有办法只获得第一个免费工人并将任务分配给他。
现在我试过了
javascript - NodeJS集群,真的需要吗?
我决定要研究使用 NodeJS 服务器处理大量流量的最佳方法是什么,我在 2 个具有 1GB RAM / 2 个 CPU 无集群服务器代码的数字海洋服务器上做了一个小测试:
集群服务器代码:
我向这些服务器发送了压力测试请求,除了集群服务器将处理更多请求,但它没有发生,两台服务器在相同的负载下崩溃,尽管集群上运行了 2 个节点服务,非节点上运行了 1 个服务-簇。
现在我想知道为什么?我做错什么了吗?
也许还有其他东西使服务器达到断点?两台服务器都以约 800 rps 的速度崩溃
node.js - 使用 redis 缓存帖子
我有一个包含群组的论坛,用户一直在创建新群组,目前我正在使用带有 ttl 的节点缓存来缓存群组及其内容(帖子、喜欢和评论)。
服务器在乞讨时工作得很好,但是当更多人开始使用该应用程序时性能下降,所以我决定使用 node.js 集群模块作为下一步来提高性能。
节点缓存会导致一致性问题,同一组可能会缓存在两个工作人员中,因此如果其中一个更改了,另一个将不知道(除非您这样做)。
我想到的第一个解决方案是使用 redis 来存储整个组,并借助 redis 数据类型(集合和哈希对象)来存储内容,但我不知道这有多有效。
另一种解决方案是使用 redis 将请求映射到正确的工作人员,在这种情况下,缓存的数据在工作人员中随机分布,因此当工作人员收到与某个组相关的请求时,他会检查组所有者(持有该组的工作人员)内存中的组实例)并要求他使用 node-ipc 获取所需的数据,然后将其返回给用户。
第一个解决方案有问题吗?
第二种解决方案不提供公平性(如果所有受欢迎的群体都落在同一个工人身上),是否有解决方案?
有什么建议么?
提前致谢
node.js - Moongose 未连接到集群节点中的数据库
我有一个集群 nodejs 应用程序(1 个 Master 和 4 个 Workers)的设置。
主人实例化工人并创建一堆他们可以抓取的任务。
每个工作人员都像这样启动一个数据库连接:
我的数据库类如下所示:
还有我的任务课:
当我执行代码时,bulkUpdate
变量在之后未定义,initializeUnorderedBulkOp()
因此我无法.find()
对其执行 a 。
经过一番研究,似乎月鹅可能还没有连接。问题是我在执行console.log('connected');
之前有控制台日志initializeUnorderedBulkOp()
,所以我认为它是连接的。
我的问题是,问题在哪里?使用集群的事实是否会混淆猫鼬或我初始化它的方式?
谢谢
javascript - [节点js | 集群]:如何等待我所有工人的回答?
我有一个集群节点应用程序,我正在寻找一种方法来从一个请求中获取所有工作人员的状态。
我用快递问masten,但它与快递无关。有一个请求,我想要这样的东西:
要发送明确的答案,我需要等待所有工作人员的答案,然后将它们连接起来。但问题是:如何等待工人而不是简单的听众的具体回答?
这是集群应用程序的代码示例。我正在尝试在http://localhost:8000/的请求中获取先前的 Json
提前致谢 :)
javascript - 我的一半集群工作人员没有从文件中读取任何内容 - Node.js
我有麻烦,理解,为什么我创建的一半工作人员能够读取文件的内容,而其中一半人什么也没读。
这是我的代码:
这就是输出的内容。
...我不会转储所有内容,但最后你可以看到,第 5 个工作人员从文本文件中获取数据,所以基本上,当我创建 8 个工作人员时,前 4 个工作人员不知何故从文件中读取任何内容,而其他4个阅读它没有问题。
很清楚,当输出显示 [''] 时,我是说工人什么也没读
mysql - 如何跨节点集群共享一个资源
我正在使用节点cluster
模块,每个工作人员都加载一个数据库连接。
index.js
数据库.js
我的理解是,每次产生一个工人时,它都会初始化db.js
,这将创建一个新的池/连接到 mysql。
有没有另一种方法来构造它,以便所有工作人员共享同一个 mysql 池?