首页 > 解决方案 > 水平可扩展游戏状态nodejs

问题描述

我正在创建纸牌游戏,目前正在尝试确定可扩展性的最佳方法。我最初的想法是能够水平扩展,这导致我实现了 socket.io 和 redis 在实例之间传播消息。我现在正试图弄清楚如何在实例之间共享游戏状态,以这个伪代码为例

class Game {
    this.games = {};

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

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

我应该如何从将游戏状态存储在内存中到跨实例传播游戏状态,我最初的想法也是Redis。

从最受欢迎的在线赌场来看,一次似乎只有大约 10,000 名客户在线,我只是在想它吗?如有必要,我应该坚持垂直缩放吗?

标签: node.jsstatepropagation

解决方案


推荐阅读