【发布时间】:2017-08-28 11:10:23
【问题描述】:
我们正在开展一个项目,以获取有关微服务和自动可扩展架构的一些知识。在这个项目中,我们正在构建一个小型游戏,用户可以在其中驾驶飞机并在线击落其他玩家,托管在 Amazon Web Services 上。一场比赛的持续时间应该在 10 分钟左右,一百万场比赛应该(理论上)能够同时进行,大约一千名玩家应该能够在一场比赛中进行比赛。所以应用程序必须真正具有可扩展性。
我们现在正在架构中遇到困难的部分。我们希望服务器计算玩家的位置。这意味着服务器获取用于重新计算位置的关键输入请求。问题在于,由于应用程序是可扩展的,并且不只有一台服务器在进行所有计算并保存所有数据,因此输入事件可能最终会出现在不同的位置。我们期望不断将所有位置写入数据库并将其读回客户端太慢且可扩展性不够。此外,我们不希望为单个游戏使用专用服务器,因为这可能会削弱计算能力(和金钱)
我们已经搜索了其他游戏架构的不同实现,例如消息传递,但无济于事,我们找不到任何合适的方法。我们想知道是否有任何一种模式可以使这种实现工作?我们真正需要的只是一些可能的模式的方向感。
【问题讨论】:
-
microservices.io 通常是回答此类问题的好来源。
标签: performance amazon-web-services architecture scalability microservices