我正在创建纸牌游戏,目前正在尝试确定可扩展性的最佳方法。我最初的想法是能够水平缩放,这导致我实现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个在线客户,我是否只是在思考呢?如有必要,我应该坚持垂直缩放吗?