天生一对,当游戏遇上MongoDB

前端时间魔兽这个电影我相信大家都看过了哈,作为一个资深魔兽世界玩家(从公测时候就开始玩,当然现在是已经AFK多年),我对这个电影还是可以给好评的,毕竟里面的一些场景还原度还是蛮高的,特效也做得不错。不过肯定也会有人觉得不满意,毕竟魔兽的游戏做得太成功了(我这里主要指魔兽世界),恢弘的史诗剧情,创新的团队副本设计,丰富的游戏体验,各种令人赞叹的细节。作为一个码农,有时候我也会去思考魔兽世界这个游戏背后他的一些设计和实现,比如他用什么数据库。当然真正用什么数据库这个我是不确定的,我们今天的主题是当游戏遇上MongoDB,所以我们只聊游戏如果采用MongoDB作为数据库有哪些好处。

灵活多变需求

我们知道,游戏的一个特点是需求变化快,为了保持玩家一直有新鲜感,需要不停的往游戏中加入新的元素。就拿一些MMO游戏的装备(道具)系统为例,假如使用传统的关系型数据库来存放这些数据,可能会面临需要经常做表结构修改这样的DDL操作。那如果采用MongoDB的话就不会有这个问题,schema-free的特性可以支持一个表(集合)内包含不同结构的文档。此外,MongoDB直接使用JSON格式进行数据交互,这也是最接近对象模型的,对开发人员来说非常友好。关于如何使用MongoDB进行数据建模可以参考TJ写的MongoDB进阶模式设计

一些专有场景-道具自动过期和附近玩家

现在很多游戏都走游戏免费道具收费的模式,有很多类似道具自动过期的功能,这可以通过MongoDB的TTL索引来轻而易举的实现。同样,现在很多游戏使用地理位置来作为社交系统的一部分,比如附近玩家这样的功能。这也可以直接利用MongoDB的地理位置索引来做。MongoDB原生支持了这些功能,可以说非常方便。

高可用

以前玩魔兽世界的时候,每个礼拜二都要来一次停服维护。当时大家也习惯了,毕竟魔兽世界还是玩点卡的,游戏时间都是自己花钱买的。但对于现在的免费游戏来说,经常停服,可能玩家都会接受不了。对那些日流水好几位数字的游戏公司来说,时间就是金钱,停服维护可能就有种自己在不停烧钱的感觉。所以现在都要追求服务高可用,尽可能减少停服时间。数据库服务通常也是整个游戏服务中的一个重要环节。MongoDB的副本集是一个相当成熟的高可用架构,它通过一主多备结构保证服务的可用性,当主宕机后还存活的备会自动选举出新的主。

![replica_set_trigger_election]
(http://img1.tbcdn.cn/L1/461/1/b110e78a290958ba08dae37521de9d693f63f732)
阿里云数据库MongoDB在MongoDB自身高可用架构下做了进一步增强。采用一主一备一隐藏节点的经典3节点配置,对外暴露两个VIP提供用户访问,在某个节点宕机时自动进行VIP切换,保证用户始终有2个节点可用。需要注意的是,这必须是用户正确配置成副本集访问模式时才生效。

高可扩展

说完高可用,我们来说说高可扩展方面。同样还是魔兽世界,想必很多早期玩家都体验过排队,之所以要排队,主要是因为服务能力不够导致。当然,这通常和数据库无关,不过,一个好的架构师是不会允许有某个环节出现明显的瓶颈的。MongoDB由于其数据相对独立的特性,相比于关系型数据库,较容易进行水平扩展。其Sharding架构已在很多生产环境中久经验证,业内有些公司对其进一步优化后已在管理上百PB的数据。对于运维人员来说也是相当友好,动态扩容和负载均衡都是自动进行的,用户只需要选一个好的shard key即可。

回档

运营游戏有时候会面临不得不对游戏进行回档这样的痛苦选择。因为程序不可避免会有bug的存在,如果有某个bug被恶意利用,亦或者是人皆会犯错误,某个GM不小心手抖发了大量RMB道具,都可能导致较大的经济损失出现。如果游戏不是很完善,没有一个更好的解决方案的情况下,这时候可能就要考虑对游戏进行回档了。对于数据库数据的回档来说,MongoDB提供了一个延迟副本集节点的设定来解决这个问题。即,将某个节点配置成落后于最新数据一定的时间量。

当然,这还是很粗粒度的,如果要精确回档到延迟时间内或者更早的时间点,甚至是任意时间点,就还要在备份恢复这块上做更多的工作。阿里云MongoDB近期会推出任意时间点恢复的功能,以满足包括这个场景在内的备份恢复需求,敬请关注。

滚服

现在有很多游戏都采用滚服作为快速增加营收的一个运营手段。如果使用MongoDB作为数据库,可以利用其数据独立带来的好滚优势。此外,阿里云数据库MongoDB的一个功能——从备份点创建实例,简直就是专门为滚服打造的。只需事先为一个新服初始化好实例,然后创建一个备份集,就可以根据这个初始备份集快速创建多个实例,从而达到快速开新服的目的。

运营数据分析

现在是大数据时代,通过数据分析辅助运营决策是必不可少的。在数据分析方面,MongoDB提供了Aggregation pipelineMap-Reduce这两个强大的功能。其中Aggregation pipeline使用管道处理模型,提供了过滤、分组、排序等丰富的操作支持,具有较简单的操作性兼顾较好的性能,而Map-Reduce则可以使用JavaScript进行自定义处理,在灵活性上更胜一筹。此外,结合阿里云数据库MongoDB还可以使用阿里云的E-MapReduce利用云上生态系统中的其他数据存储系统如OSS、RDS等。数据可以在云上自由流转,发挥更大的价值。

总结

综上所述,MongoDB有如此多的适合于游戏开发场景的特性,还等什么呢?赶快来阿里云购买使用吧。目前阿里云数据库MongoDB采用的是3.2版本WiredTiger存储引擎,售卖的是3节点高可用副本集架构,Sharding也会在今年下半年推出。我们拥有由官方认证DBA组成的专业源码维护团队,致力于为用户提供更好的云数据库MongoDB服务,让大家用得更加省心!

时间: 2025-01-28 00:01:10

天生一对,当游戏遇上MongoDB的相关文章

当 App Store 遇上电视,开发者的第四代 Apple TV 开箱体验

当 App Store 遇上电视,开发者的第四代 Apple TV 开箱体验 引子 2015 年 9 月,San Francisco.今年接近 100 华氏度的气温要比往年都更热,而 Apple 例行的秋季发布会也如期在这里举行.自从 iPhone 一战成名后,每年的 iPhone 旗舰机型都是移动通讯设备的业界标杆.而今年秋季发布会大家也自然地将重点放在了最新的 iPhone 6s 上.手机乏善可陈,除了硬件参数的一些常规升级外,我们并没有看到 iPhone 有多大进步.不过这也是大家预料之中

专访Secret创始人:当Secret遇上“秘密”

「Secret起源于我们另一个创始人给女朋友写匿名情书的想法.」 Secret创始人及CEODavidByttow这样谈起Secret这款流行App.Secret栖身于旧金山繁华地段的一幢灰色小楼里,外面没有任何标识.他的说话声音很轻很慢,似乎听不出情绪波动,而在他周围Secret的十几名员工正在紧张加班中.Secret是一款目前在美国很流行的匿名社交应用,它是基于熟人关系链导入而成的匿名信息分享.这款应用是2013年10月份David和朋友ChrysBader-Wechseler共同创建.创立

《当90后遇上创业》一一1.6 不创业一辈子后悔,创业后悔一辈子

1.6 不创业一辈子后悔,创业后悔一辈子 当90后遇上创业创业,后悔一辈子夜深人静的时候内心是平静的,能听见心底杂质沉淀的声音.现在适合玩一个寻找猛虎的游戏.听一听内心那只猛虎在撕咬铁笼的声音.有回声吗?是否越离越近,越作越响.左心房的肌肉剧烈收缩着,控制着内心的猛虎,好像稍不留神就会跃出来. 当你心中有猛虎的时候就是该你创业的时候,此刻没有任何东西可以与之媲美,于是你踏上了创业之路. 太多的问题,太多的挫折,太多的沮丧,也有偶尔的转折,偶尔的峰回路转.但是,你还是失望了,后悔了.也许你的产品不

《当用户体验设计遇上敏捷》一3.3 设计的适合之处

3.3 设计的适合之处 当用户体验设计遇上敏捷以下这张可怕的图片是一位设计师描述的构建一个网站时所需的步骤(图3.2). 看看上图中创建者给每个活动所定的时间框以及重要性.对于具体的活动,我们没有问题.实际上我们稍后会深入讨论它们.但我们知道对于敏捷者来说,这张图很成问题,因为他们看到只有八分之一的时间花在编码上的时候说不定都会被咖啡呛到.这就相当于,在项目的每八个星期中,只有一个星期用于开发. 没有内容和开发的设计,不比没有价值的抽象概念好多少,除非赋予它生命,供人使用. 设计师可能反对这样的

到喜啦——当结婚遇上互联网

登陆"到喜啦"官方网站,动动鼠标三步选择"地区"."预算"."桌数",就能找到满足自己需求的婚宴场地."到喜啦"是一家垂直婚宴预订的电子商务平台,除覆盖的婚宴酒店,还包括婚纱摄影,婚庆用品,婚纱礼服等和婚庆相关的品类. "到喜啦"所扮演的角色是新人与酒店之间的"桥梁",让用户能够更加方便与酒店对接. 婚宴预订切入婚礼O2O "到喜啦"无疑是扎根于结

当创业遇上云计算,会产生什么结果

摘要: 让我们在今天选出一项对IT产业影响最大的技术,那么它一定是云计算技术;而如果让开发人员在今天选出一个最希望实现的愿望,那么它一定是创业.但是,多数人可能没有想过,当创 如果让我们在今天选出一项对IT产业影响最大的技术,那么它一定是云计算技术;而如果让开发人员在今天选出一个最希望实现的愿望,那么它一定是创业.但是,多数人可能没有想过,当创业遇上云计算,会产生什么结果.会擦出什么样的火花. 以"发现和鼓励云计算平台上的创新与创业"为目的2013阿里云开发者大赛于近日启动.也正是因为

当长城动漫遇上腾讯“互联网+”战略,发展现实不容乐观

3月13日消息,3月9日-13日,长城动漫接连四天涨停.当长城动漫遇上腾讯"互联网+"战略,版权(IP)游戏旧瓶装新酒的现实,未来究竟能胜算几何值得深思. 在文化产业发展利好的大背影,长城动漫出现连续接连涨停.四川长城国际动漫游戏股份有限公司(证券简称"长城动漫",证券代码"000835")股票连续四个交易日(2015年3月10日.3月11日.3月12日.3月13日)内日收盘价涨幅偏离值累计超过20%,符合深圳证券交易所的有关股票异常波动的情况.

手游遇上电子竞技,创新还是颠覆?

自2012年正式电子竞技比赛中出现手机游戏起,手游是否归属电竞的争议就从来没有消失过.但不管争议如何,人们都需要承认一个客观事实,那就是从WCG时的蹒跚起步,到TGA中的逐渐扩大影响--如今的WCA,手游已经正式成为与传统电竞相媲美的比赛项目. 创新还是颠覆?没人知道手游电竞化后,带给自己和电竞产业的是怎样的未来:但他们都明白,手游的电竞化道路,正一步步坚定的前行. 手游遇上电子竞技 事实上,广义范围的手游"电竞"早已出现.在手游被纳入各电竞比赛前,手游比赛就被各手机卖场.三大运营商当

当草根站长遇上品牌运营公司时

笔者最近在优化一个汽车车位锁网站,关键词竞争度倒是不大,当笔者一查几个竞争对手时,发现除了有几个厂家外,居然还有一个品牌运营公司.当草根站长遇上团队作战,经验丰富的品牌运营公司时,笔者是如下分析与制定计划的. 一.网站整体分析 遇上车位锁品牌运营公司,笔者觉得分析网站不能只分析简单的seo数据.应该从网站设计与布局,流量导入,口碑营销与社会化营销等诸多分析. 1.网站结构与设计 该品牌运营公司的网站结构简单,设计简洁大气,也符合该公司定位中高端车位地锁用户.实际上,笔者公司也曾请人模仿了该站,但