具有群集模块的Node.js持久数据

时间:2019-01-30 15:00:43

标签: node.js pm2

我一直在阅读herehere关于Node Js集群模块行为的信息。我想引用this article

  

如果产生应用程序的多个实例,则每个进程将   有自己的内存空间。这意味着即使您正在   当您在全局变量中存储一些值时,一台机器,或者   通常是内存中的会话,如果   平衡器在下一个请求期间将您重定向到另一个进程。

我的问题是:

  1. 如果在像这样的普通简单Map中存储一些数据:

    const userData = new Map();
    io.on("connection", socket => {
      socket.on("join", data => {
        const room = data.room;
        const username = data.username;
        userData.set(username, "some custom value")
    
        socket.join(room, error => {
          if (error) throw error;
          socket.emit("hello", userData);
        });
     });
    }
    

这样使用数据时,我的数据是否可以持久保存并通过我的Node js应用程序访问?

socket.on("anotherEvent", user => {
  socket.emit("whatever", userData.get(user));
});
  1. 在集群模式下使用pm2时,使用对象,地图和数组在Node js应用程序中存储和共享数据是一种好习惯吗?

我一直为此目的使用数据库。但是我想知道是否可以在一些简单的用例中使用内置对象和数组。 感谢您的支持。

0 个答案:

没有答案