Я читал здесь и здесь о поведении кластерного модуля Node Js.Я хотел бы процитировать эту статью :
Если вы создаете несколько экземпляров своего приложения, у каждого процесса будет свое собственное пространство памяти.Это означает, что даже если вы работаете на одном компьютере, когда вы храните какое-то значение в глобальной переменной или чаще в сеансе в памяти, вы не найдете его там, если балансировщик перенаправит вас на другой процесс во время следующего запроса.
Мои вопросы будут:
Если вы храните некоторые данные на простой простой карте, например:
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 в режиме кластера?
Я всегда использовал базу данных дляэта цель.Но я хотел бы знать, возможно ли использовать встроенные объекты и массивы для некоторых простых случаев использования.Спасибо за вашу поддержку.