gpt4 book ai didi

java - 在具有动态响应的大型集群系统上协调共享状态

转载 作者:行者123 更新时间:2023-11-29 09:00:15 24 4
gpt4 key购买 nike

我正在设计一个扑克网络应用程序,多个用户共享一个游戏,并分布在许多服务器上。假设我想在单个服务器中维护游戏状态——有没有一种方法可以“路由”或“引导”登录用户与托管游戏的机器进行交互?该游戏涉及通过 AJAX 进行的大量交互式响应,因此无法跨多个服务器协调数据库中的状态。 (如果您认为可以使用分布式缓存跨多个服务器维护状态 - 那么我也对此持开放态度)。

为简化起见,假设 webapp 是用 Java 实现的。

如果您可以在您的回答中提供示例库和有关路由的信息,那将会很有帮助。 (例如,为什么或为什么 Apache Zookeeper 是处理此问题的合适方法)。

最佳答案

在负载均衡器级别,有 粘性 session 的概念,由 HAProxy 等负载均衡器支持,这将确保同一用户始终被路由到同一服务器(使用 https可能会更难)。

但是,很难保证登录到不同服务器的2个用户最终在同一服务器上玩。这也意味着如果服务器宕机,双方玩家都将输掉比赛。也许您应该将游戏保存在分布式缓存中并处理故障?

据我了解,在 HAProxy 中,可以使用查询字符串将请求路由到适当的服务器。 http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

但是你最好使用无状态请求,并且能够处理来自多个服务器的请求。

关于java - 在具有动态响应的大型集群系统上协调共享状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17893163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com