10000名玩家的实时游戏服务器

时间:2015-04-23 14:09:06

标签: mysql jboss server wildfly wildfly-8

我有一个应用服务器(Wildfly)连接到数据库(MySQL),需要同时处理来自10000名玩家的请求。

客户使用以下呼叫将其职位发送到服务器:https://mytestserver.utd/update?x=7&y=8

为了快速处理并将这些信息存储在内存和数据库中,我想知道什么是最好的方法。我提出了以下解决方案:

  1. 每次来自客户端的调用,更新内存值,建立数据库连接并存储新位置。
  2. 每次从客户端调用时,更新内存值,对任务进行排队以更新数据库中的值(使用ThreadPoolExecutor)。
  3. 每次来自客户端的调用时,只更新内存值。然后每5到10秒,一个工作线程将存储内存中的所有内容。
  4. 选项1 实际上并不是一个选项,因为这样做非常慢且耗费资源。

    选项2 看起来不错,但比选项3

    更复杂,耗费更多资源(在数据库连接方面)

    选项3 对我来说似乎是最好的解决方案,因为它只使用一个数据库连接,而且更新内存中的信息非常快。此外,如果服务器崩溃,我只会失去5至10秒的游戏状态,这在我的情况下是可以的。

    我是否正在使用选项3 朝着正确的方向前进?或者您是否看到了漏洞?

0 个答案:

没有答案