0

我正在寻找一种在 NodeJS 中的所有集群实例之间共享相同数据结构(包含函数,因此 JSON 不是一个选项)的方法。我有一个名为“用户”的数据结构,它跟踪用户会话并包含他们可以访问的功能。我需要能够在所有节点进程之间共享这个数据结构,或者我需要一个替代的设计模式。有谁知道这个问题的任何解决方案?谢谢

4

2 回答 2

2

在 nodejs 上设置正确的 IPC(进程间通信)有多种选择:

  • 使用文档/键值存储解决方案,如Redis(键值)或MongoDB(NoSQL 文档存储)
  • 使用集群模块的集成 IPC 功能(见send方法

决定哪种解决方案最适合取决于您的要求和项目设置。对于我们的上一个项目,我决定使用这两种方法:

  • 用于触发作业并将部分任务分派到不同 nodejs 实例的 IPC
  • Redis 用于集中式会话和 API 令牌管理

如果您使用 Express,我强烈建议您使用 Redis 中间件connect-redis。此会话中间件自动处理基于 express 的应用程序的集中式会话管理(这也意味着您可以存储复杂的 JS 对象并可以从所有实例中访问它们)。

于 2013-01-13T20:43:01.200 回答
2

我意识到这是旧的并且已经回答,但是注意到替代方案可能对其他人有益。处理这种情况的推荐方法是将此数据结构及其功能放在单独的文件中,require并在需要时放置。这实际上将引入“代码/函数”,并将数据本身存储(序列化/反序列化)在任何数据存储中。

于 2014-02-11T15:54:35.480 回答