Горизонтальное масштабируемое игровое состояние nodejs - PullRequest
0 голосов
/ 11 апреля 2020

Я нахожусь в процессе создания карточной игры, и в настоящее время я пытаюсь выбрать лучший подход к масштабируемости. Моя первоначальная мысль - возможность масштабирования по горизонтали. Это привело меня к реализации socket.io и redis для распространения сообщений между экземплярами. Сейчас я пытаюсь выяснить, как разделить игровое состояние между экземплярами. Взять этот псевдокод, например:

class Game {
    this.games = {};

    async updateGameState = () => {
        this.games[game_id] = {game: state}
        persistState()
    }

    persistState = () => {
       database.update(this.games[game_id])
    }
}

Как мне go сохранять состояние игры в памяти, чтобы распространять игровое состояние между экземплярами, мой исходный код Мысль - это тоже Redis.

Судя по самым популярным онлайн-казино, в которых на данный момент в сети только около 10000 клиентов, я просто слишком обдумываю это? Должен ли я просто придерживаться вертикального масштабирования при необходимости?

...