Node.js 多核nodejs游戏服务器

Node.js 多核nodejs游戏服务器,node.js,distributed,Node.js,Distributed,我正在用nodejs开发一个纸牌游戏后端,我正在使用socket.io和Redis作为适配器,以便不同的实例可以访问所有套接字 我计划在Redis中保存可能在5到10 KB之间的比赛状态,当比赛中的球员在每个人执行一个动作时可能连接到不同的实例,他们的实例将在Redis中更新比赛状态 看起来还可以,但我觉得它有一些问题,例如,在任何崩溃或重新启动的情况下,我需要获取所有匹配项并对它们执行一些操作,但如何使每个实例处理部分匹配项? 另外,我会为下一个玩家启动一个计时器,因为它可能连接到另一个实例,

我正在用nodejs开发一个纸牌游戏后端,我正在使用socket.io和Redis作为适配器,以便不同的实例可以访问所有套接字

我计划在Redis中保存可能在5到10 KB之间的比赛状态,当比赛中的球员在每个人执行一个动作时可能连接到不同的实例,他们的实例将在Redis中更新比赛状态

看起来还可以,但我觉得它有一些问题,例如,在任何崩溃或重新启动的情况下,我需要获取所有匹配项并对它们执行一些操作,但如何使每个实例处理部分匹配项? 另外,我会为下一个玩家启动一个计时器,因为它可能连接到另一个实例,所以当他们玩他们的回合时,它将在另一个实例中处理,并且无法停止计时器,因为计时器是在另一个实例中启动的

我想如果我能有一个具体比赛的例子,它将解决我的大部分问题,但我不知道如何实现它


如有任何意见或建议,将不胜感激

我不确定这里的确切问题,但您应该能够创建一个高可用性系统,使您不必从头开始重新启动

  • 使用高可用性的Redis实例,例如使用,或提供HA的Redis云实例

  • 使用Node JS Socket.io,您还可以在许多服务器(由Redis支持)上部署它

  • 这应该允许您拥有一个可以扩展的“alway on”体系结构