【问题标题】:In node.js, how can send data from one worker to all other workers?在 node.js 中,如何将数据从一个工作人员发送到所有其他工作人员?
【发布时间】:2025-11-24 18:30:01
【问题描述】:

我有一个内存中的 javascript 对象,我会在节点启动时对其进行初始化。我正在使用集群模块在多个核心上运行此节点应用程序。当我收到一个 http 请求时,它被一个工作线程接收,改变了 javascript 对象的值。我需要确保所有工作线程都反映了这个更改的值?我该怎么做?

【问题讨论】:

    标签: javascript node.js load-balancing multicore


    【解决方案1】:

    子进程不能共享变量,因为每个工作进程都是使用child_process.spawn 创建的全功能进程。

    使用快速、内存中的键值对数据库(如 Redisnode-redis)来执行此操作。

    这样,当您的应用启动时,您可以序列化您的 JS 对象并将其分配给 Redis 键。然后,工作人员将对同一个键执行所有读取更新操作。我个人推荐这种方式。

    【讨论】: