亚马逊 AWS 利用 Amazon DynamoDB 助力游戏应用.pdfVIP

亚马逊 AWS 利用 Amazon DynamoDB 助力游戏应用.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
亚马逊 AWS 利用 AmazonDynamoDB 助力游戏应用 AmazonDynamoDB 正迅速成为世界上发展势头最强劲的游戏数据库。《水果忍者》(由 Halfbrick工作室开发)、《战斗营地》(由PennyPop开发)等游戏都充分利用 AmazonDynamoDB 的一键式扩展性功能,支撑游戏高速的发展,为全球数百万玩家提供服 务。AmazonDynamoDB 还得到包括Supervillain工作室在内的众多开发人员的赞赏,该工 作室的知名作品包括《塔炮战争》与《特隆:进化》。 在今天的文章中,大家将了解AmazonDynamoDB 如何帮助大家为自己的移动游戏快速建 立起可靠且极具可扩展性的数据库层。我们将分步剖析设计示例并了解如何以每天不足一杯 咖啡钱的成本为游戏提供弹性资源支持。我们还将模拟一家快速发展的客户,观察 AmazonDynamoDB 如何在时间与成本效率的前提下将玩家支持规模扩展至数百万之巨。 数据库层的重要性 在为规模化应用程序设计架构时,一大关键性因素在于数据库层。这一点对于游戏尤为重要, 毕竟属于写入密集型应用。游戏数据会随着玩家收集道具、击败敌人、获取金币、角色升级 以及完成成就而不断更新。每一个事件都必须被写入到数据库层,从而保证内容不会丢失。 可以想见,一旦进度损坏玩家将变得极为暴躁。 游戏与Web 应用开发人员通常会使用MySQL等开源关系型数据库作为自己的数据库层, 这是因为此类方案更为人们所熟悉。遗憾的是,以MySQL为代表的关系型技术方案在开发 之初更多考虑到的是高强度读取工作负载,而这种机制并不太适合游戏、社交媒体应用以及 图片分享站点。有鉴于此,NoSQL解决方案应运而生,它利用强大的写入数据吞吐能力与 横向扩展能力替代了传统关系型数据库在查询灵活性领域的优势。 AmazonDynamoDB 适合游戏开发人员需求的三个理由 • Amazon 包揽运营任务。 开发游戏本身就很累人,对吧?AmazonDynamoDB 是一项托管服务,其中包含全方位运 营支持以及多数据中心高可用性。大家用不着再为软件安装、硬件故障处理或者性能表现调 整而烦心。 • 只需调用单一API,大家就能对AmazonDynamoDB 进行动态缩放。 每一个AmazonDynamoDB 数据库表都与数据吞吐能力密切相关。大家可以将每秒写入操 作设定为1000次,而AmazonDynamoDB 会处理全部后台数据库调整工作。根据用户需 求的变化,大家可以更新该容量,AmazonDynamoDB 则会依要求完成资源重新分配。这种 弹性能力对于游戏开发者帮助巨大:当游戏推出之后,大家可能需要在短时间内将玩家支持 规模由数千位增加到数百万位。同样重要的是,大家可以快速调低资源规模——这种调整对 于MySQL数据库来说颇具挑战。 • 无论游戏玩家规模如何变动,性能表现都将保持稳定。 AmazonDynamoDB 可在任意规模水平下保持可预测、低延迟性能表现。如果大家的游戏 对于延迟较为敏感、并且需要面对数百万玩家,那么这种特性将变得至关重要。使用 AmazonDynamoDB,大家不必再为性能调整浪费任何精力。 在AmazonDynamoDB 中保存游戏数据 我们不妨想象一下,大家希望创建一款角色扮演游戏。游戏设计遵循常见机制:与怪兽战斗、 收集战利品并进行角色升级。在这种情况下,各位显然需要保存用户的当前进度,这时我们 应该为每位玩家创建一个键-值对配置文件,其中包括现有道具、角色等级以及赚得金币的 数量。大家的数据结构可能如下所示: { player_id:3612458, name:“Gunndor”, class:“thief”, gold:47950, level:24, hp_max:320, hp_current:292, mp_max:180, mp_current:180, xp:582180, num_plays:538, last_play_date:2014-06-30T16:27:39.921Z } 在这个示例中,player_id应该是个独特的值。将其与MySQL等关系型数据库相映射非常 简单:为每个键创建一个列。这种方式当然可行,但对结构中的每一列进行解析及检索将给 数据库带来沉重负担,而且主键(即player_id)几乎每时每刻都要接收查询请求。很明显, 大家不太可能利用玩家的记录点位置或者经验值进行记录查询。 好的,下面来看将其映射至AmazonDynamoDB 会发生什么。在AmazonDyn

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档