2

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

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

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

4

1 回答 1

0

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

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

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

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

于 2013-07-27T00:59:28.290 回答