在node.js中,如何将数据从一个worker发送给所有其他worker?

时间:2013-07-23 09:59:40

标签: javascript node.js load-balancing multicore

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

1 个答案:

答案 0 :(得分:0)

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

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

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