Постоянные данные Node.js с модулем кластера - PullRequest
0 голосов
/ 30 января 2019

Я читал здесь и здесь о поведении кластерного модуля Node Js.Я хотел бы процитировать эту статью :

Если вы создаете несколько экземпляров своего приложения, у каждого процесса будет свое собственное пространство памяти.Это означает, что даже если вы работаете на одном компьютере, когда вы храните какое-то значение в глобальной переменной или чаще в сеансе в памяти, вы не найдете его там, если балансировщик перенаправит вас на другой процесс во время следующего запроса.

Мои вопросы будут:

  1. Если вы храните некоторые данные на простой простой карте, например:

    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));
});
Полезно ли использовать объекты, карты и массивы для хранения и обмена данными в приложении Node js при использовании pm2 в режиме кластера?

Я всегда использовал базу данных дляэта цель.Но я хотел бы знать, возможно ли использовать встроенные объекты и массивы для некоторых простых случаев использования.Спасибо за вашу поддержку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...