问题标签 [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 - 如何在工作人员之间共享动态对象?
我正在尝试制作一款适用于房间、大厅等的游戏(想象一下聊天应用程序,除了额外的检查/信息存储)。
假设我有一个模块 room.js
我怎样才能得到这个对象(带有事件)?如何访问此对象发出的事件?
在单个节点实例中,我会执行以下操作:
另外,我不太明白 Redis 是如何提供帮助的(它是不是 EventEmitter 的替代品?)
问候。
编辑:也会接受 PM2 解决方案。
node.js - NodeJS Cluster how share object array across workers
So I have setup a simple nodejs cluster game, I am new to nodejs. basically players connect to to my worker using socket.io then they get created to a Player Object then added to my PlayerManager.LIST array. Now this causes me some issues as the PlayerManager.LIST is on each of workers and are not sync'd.
So my question is, is there a better way of doing this so that if I connect to worker 2 I see same player list as worker 1's.
Structure at the moment:
Git Repo: https://github.com/mrhid6/game_app_v2
express - 在集群节点 Js 应用程序中缓存的最佳解决方案是什么?
我将 cluster-node-cache与以下代码一起使用。
这导致了以下输出
当然,由于这个结果,cluster-node-cache不是集群缓存需求的解决方案。
请提出最佳解决方案以及为什么该解决方案是最好的?
node.js - Node.js Clustering-分叉,实际使用了多少内存?
http://stackabuse.com/setting-up-a-node-js-cluster/ 说
” 需要明确的是,Node 中的分叉与 POISIX 分叉非常不同,因为它实际上并不克隆当前进程,但它确实启动了一个新的 V8 实例。
尽管这是最简单的多线程方法之一,但应谨慎使用。仅仅因为你能够产生 1,000 名工人并不意味着你应该这样做。每个worker都占用系统资源,所以只产生那些真正需要的。Node 文档指出,由于每个子进程都是一个新的 V8 实例,因此您需要预计每个子进程的启动时间为 30 毫秒,每个实例至少需要 10 mb 的内存。”
但是https://nodejs.org/api/cluster.html说
“Node.js 或您的程序中没有路由逻辑,工作人员之间也没有共享状态。因此,重要的是设计您的程序,使其不会过于依赖内存中的数据对象,例如会话和登录。”
如果工人(分叉的进程)实际上不是主进程的克隆,那么为什么也没有共享状态呢?
我的印象是,如果主进程有一个 1 GB 的 JSON 字符串,那么所有子进程也会有那个 1 GB 的 JSON 字符串的克隆。因此,如果有两个孩子,将使用 3gb 的内存。实际发生了什么?
node.js - Nodejs 集群仅使用 1 个 worker
为什么集群模块只使用 1-2 个工作人员,而不是通过所有 12 个工作人员来平衡负载?网站统计:每天有 10000 名用户,不断有 100-200 名在线用户。我正在使用 nginx 和 pm2 来启动服务器。
我的代码:
node.js - 如何从 socket.io-redis 发送私人消息(发出)
我正在使用 Node.js、Socket、io、Redis 开发一个实时应用程序。我尝试从工作人员向一位客户发送私人消息,但它不起作用。worker 上的数组io.sockets.connected为空,我无法引用客户端。
主代码:
工人代码:
我究竟做错了什么?
javascript - 使用nodejs中的集群在两个不同的worker中运行两个任务
我正在学习聚类NodeJS
。我有两个任务,一个是node-sass
,另一个是uglifyjs
我想由两个不同的工作人员使用 cluster in 运行nodeJS
。虽然代码是工作文件并创建SASS -> CSS
文件和main.js
文件main.min.js
。
但我不确定它是否由单独的工人处理。让我知道我可以在哪里进行修改 -
SASS -> CSS
由一名工人处理UglifyJS
第二个工人的任务- 一旦两个任务都完成了主控制台一个成功的消息
以下是我的代码:
node.js - 节点集群;只使用一个进程
我正在运行一个具有 8 个工作进程的集群节点应用程序。我在服务请求时提供输出,输出包括处理请求的进程的 ID:
当我疯狂地刷新/some-url
时,我在输出中看到每次都是同一个进程处理请求。
我使用节点负载测试来查询我的应用程序。同样,即使有 8 个工作人员可用,也只有一个工作人员处理每个请求。这显然是不可取的,因为我希望对集群应用程序进行负载测试以查看所有进程协同工作的整体性能。
这是我初始化应用程序的方式:
我如何让我的所有员工工作?
node.js - 节点集群未监听,集群退出且无响应
我只在我的机器上遇到了这个问题。我在其他机器上尝试了我的代码,它运行良好,我没有任何解决方案,因为没有代码级别的问题,可能是它的操作系统问题或者可能是 Nodejs 版本问题,我不知道。
操作系统:Window 7 Professional 64-bit
Nodejs 版本:4.4.3
代码
登录命令行
当我点击http://localhost:8080时,新日志是
并且浏览器上没有数据,不断在浏览器上加载。
请帮忙。