用容器部署在线游戏如何保证玩家websocket不断?

容器是无状态的,在线游戏要有状态,多个用户的状态在多个容器内时,要对容器增减会造成游戏中断。这种情况如何保证正在连接的websocket不断?
如果用容器编排工具kubernetes等会有解决方案吗?或者从业务逻辑上考虑?

阅读 4.7k
2 个回答
  1. 通过前端负载均衡来保持链接,后端来处理逻辑可以解决
  2. 在容器被杀死前对容器内部的应用发起广播,前端的负载均衡不将新的请求转发到内部容器,然后内部应用向客户端发起重新链接的请求,客户端接到请求后创建第二个socket请求,待发起成功后将旧的socket断开

没做过相关内容,仅供参考

正常的游戏服务器都有网关架构的
玩家只连接网关。由网关来负责连接后端服务器,换线不需要重新登录就是这么玩的。
重启游戏服务器的时候,先让网关连接其他服务器。然后把需要重启的服务器重启,最后重新接上网关

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题