我有一个运行着x个游戏服务器(Pod)的部署。我使用Agones来确保连接玩家的游戏服务器不会因为缩容而停止。另外,我使用了一个服务(“连接”到所有的游戏服务器),它充当了pods的LoadBalancer,据我所知,当玩家连接到该服务时,它会随机选择一个游戏服务器。这一切在放大时都很有效,但在缩小时就不那么有效了。由于Agones会阻止有玩家的游戏服务器缩小,因此pods的数量基本上不会减少,因为服务不会考虑期望的副本数量(实际数量更高,因为游戏服务器上有玩家的数量不会缩小)。
有没有办法防止LoadBalancer服务选择不再需要的游戏服务器(副本)?例如:当前的网络负载只需要3个副本,但目前有5个副本,因为有5个服务器上有防止它们关闭的播放器。我只想在3个想要的副本(游戏服务器)上传播新的负载,让其他2个有机会到达0个玩家,所以它最终能够关闭自己。
发布于 2021-10-20 04:29:01
我建议使用Agones GameServerAllocation API让Agones为您找到可用的游戏服务器,而不是使用LoadBalancer将玩家分散到您的游戏实例中。
如果您允许多个玩家连接到同一个游戏服务器,请查看integration pattern for allocating based on player capacity。Agones将玩家打包到具有可用容量的游戏服务器上(而不是分散它们),这将防止您将非常少量的玩家分散在所有游戏服务器上,这就是当您使用负载均衡器将玩家分配到游戏服务器时发生的情况。
https://stackoverflow.com/questions/69630557
复制相似问题