资讯专栏INFORMATION COLUMN

微信小游戏爆款秘笈 数据库MongoDB攻略篇

lewinlee / 997人阅读

摘要:腾讯云数据库为微信小游戏提供优化的连接模型,支持更多的长连接。腾讯云数据库是国内唯一提供表级监控的云厂商。同时,时序数据库已经在烟草和电力行业实现规模部署。

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由腾讯云数据库 TencentDB  发表于云+社区专栏

随着微信小游戏的爆发,越来越多开发者关注到MongoDB与小游戏业务的契合度。

腾讯云已为多个爆款微信小游戏提供服务,腾讯云数据库团队在多年MongoDB运营&支持微信小游戏服务经验总结,MongoDB产品经理李晓慧在7月26日在厦门举行的《腾讯云GAME-TECH游戏开发者技术沙龙》上,为广大开发者分享了腾讯云MongoDB在小游戏中的实践应用,帮助刚刚走进小游戏开发的同学们提供干货。

以下为分享内容要点:

一、为什么在小游戏开发场景下,使用MongoDB是比较合适的?

1.需求灵活多变:

如果使用Schema的数据库,那么每次需求变动都可能需要开发者去改数据库。带来得开发成本极大。

使用MongoDB这种no Schema的数据库可以在需求变动时不用更改数据结构,可以灵活增减字段,节约成本并提高效率。

2.附近的玩家:小游戏之所以爆发,很大一个因素是借助微信自带的社交元素,通过调用微信的API推荐好友ID和获取附近的玩家。

MongoDB原生支持GEO地理位置信息存储,同时还提供GeoSearch和GeoNear等API,可以获取用户附近玩家信息,用户可以方便通过API拉取好友ID和获取附近的玩家,使用起来非常方便。

3.海量数据支持&动态不停服升级:

很多开发者在小游戏上线前无法预测数据量,所以最初开始配数据库时都是标配,使用腾讯云数据库的MongoDB的分片集群,可以横向和纵向扩容,能够在不影响服务的前提下,把数据库扩展到很大。

4.运营数据分析支持:

MongoDB原生MapReduce功能,运营分析系统可以直接连过来使用数据进行分析,无论是用户登录数据还是行为数据轻松搞定。

5.nodejs完美支持:

6.nodejs和MongoDB是一起配合成长起来的。在小游戏的开发场景下,一般后面会有一个分布式的gameservice,前面配一个负载均衡,最后配多个MongoDB数据库。

二、腾讯云数据库MongoDB是如何助力TOP3的两款小游戏的?

在17年12月底到18年1月初,随着撒币答题直播兴起的同时,一款小游戏在微信好友圈高速发展,一跃成为TOP3的微信小程序。与此同时,因业务扩张太快,带来的操作响应慢确实让用户抓狂不已。腾讯云MongoDB团队在接收到客户的反馈后,迅速做出响应,通过优化MongoDB连接和创建读快照减少慢查询等操作,消除了小游戏卡顿的现象,助力客户拥有了上亿用户口碑的小游戏。因为靠着腾讯云产品过硬的功能和性能,以及优质的服务,腾讯云数据库MongoDB也为客户的另一款现象级微信小游戏带来峰值日活2kw且流水上亿 。腾讯云数据库MongoDB为微信小游戏提供:

1、 优化MongoDB的连接模型,支持更多的长连接。

由于原生MongoDB的后端连接模型分两部分,第一部分是Mongos对客户端的连接,第二部分是MongoS对Mongod的连接。对客户端的连接,采用的是one-thread-pear-connection,也就是每一个客户端连接打过来的时候,都会去建一个线程,每一个线程都会占用1MB的内存,所以当连接非常多的话,实例就会变得很卡。在后端建立连接的时候,是采用一个线程池的结构。每一个线程池,负责处理一个客户端的连接,然后每一个Worker里面又有N个线程池,每一个线程池又负责每一个Mongod连接。

腾讯云数据库MongoDB针对连接进行优化,优化后较原生的MongoDB可以多支持20%的长连接,让微信小游戏使用起来更顺畅,此优化让客户对腾讯云好感和信任度倍增。

2. 读写分离,提高QPS,减少慢查询

一般原生MongoDB一主多从,如果不做任何操作,它会把所有的读写请求都打到primary上面,那么流量峰值来了,数据库主的写压力会非常大。客户就这个问题做了一个改善,把读引到了从上面,本以为这样会对主写的压力变小,然而却发生了游戏卡顿的现象。针对卡顿,腾讯云数据库MongoDB团队通过排查,发现当MongoDB主写压力非常大的情况下,从同步数据的压力也很大,此时MongoDB为了不让业务读到脏数据做了一个全局锁,导致业务的读操作就会被锁住,从而导致慢查询增多引起了小游戏卡顿。

腾讯云数据库MongoDB提供优化,从在回放Oplog的过程中,立即创建一个快照,所有的读都是读快照,不会被锁住。这个方案对效果优化是非常明显的。慢查询几乎没有,同时QPS是原来的2倍。这个优化目前已经申请专利。

腾讯云数据库MongoDB同时在只读实例上又做了优化方案:提供只读实例,此时只读实例会从主实例去同步数据,所有的读都打到只读实例上去。实际实现效果和读快照的方案性能差不多,此方案也在其他的小游戏大放异彩。

3. 提供分片集群,业务量暴增时可灵活扩展

一款小游戏在未上线时候可能根本无法预估数据量,如果申请非常大的数据库会受到运维同事的挑战,但是如果后来量爆起来了,数据库扛不住压力时再进行扩容是非常麻烦的。为了更好的支持这种业务场景,腾讯云数据库MongoDB提供分片集群,在量还不会爆很多的时候,进行纵向扩容就可以满足需求。对于像客户爆款游戏,可以提供横向扩容,这时候使用分片集群,对线上业务几乎是无感知的。

4. 提供库表回档,细粒度快速处理错误。

通常在业界MongoDB仅提供实例级别的回档,不管因为什么原因需要回档,客户均要通过整实例回档实现。作为目前国内提供MongoDB服务云厂商当中,唯一提供提供库表回档的腾讯云数据库MongoDB,为客户提供更细粒度回档服务。举个例子,例如有一天游戏的某个模块上线之后,发现有用户在刷钱,分析发现因为一个Bug引起的,此时如果直接强制性把用户的钱收回来,是非常不合理的,所以此时仅需要把这个bug引起的库表进行回档就可以。

5. 提供表级监控,更精准、更细粒度监控业务健康度。

腾讯云数据库MongoDB是国内唯一提供表级监控的云厂商。业界大部分数据库仅提供实例级别的监控,监控实例的各种CRUD的操作,慢查询,延时,聚合操作。而多数微信小游戏在起步之初,通常是将多个小游戏的数据写在同一个实例里面,通过不同的库标管理不同的小游戏,此时表级监控相比实例监控对客户更有用和有效。

6. 时序数据库CTSDB的应用

存储业务的日志和监控数据,客户使用腾讯云时序数据库产品方便存储业务的日志和监控数据。同时,时序数据库已经在烟草和电力行业实现规模部署。腾讯云数据库提供一系列的界面和日志采集工具方便大家使用。想详细了解这款数据库产品可以访问:https://cloud.tencent.com/pro...

最后,作为小游戏的开发者,如果你在数据库操作使用上有任何困难和疑问,不妨尝试一下腾讯云数据库产品和团队的服务,让我们携手共同为游戏客户提供更优质体验的娱乐产品服务。

访问以下链接或扫描下方二维码马上体验腾讯云MongoDB

https://cloud.tencent.com/pro...

访问以下链接或扫描下方二维码马上体验更多腾讯云数据库产品

https://cloud.tencent.com/sol...

问答

如何升级MongoDB?

相关阅读

Redis云端架构深入浅出

腾讯云数据库回档解决方案

给你的CVM安装一个面板吧!

此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/dev...

欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

海量技术实践经验,尽在云加社区!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/62551.html

相关文章

  • 【沙龙报名中】与微信&云开发官方团队零距离互动,揭秘爆款微信游戏背后的技术!

    摘要:在现如今的游戏市场寒冬中,拥有微信庞大的用户量以及更好兼容性的小程序游戏,优势就显得格外明显。扫描二维码即可报名您在现场将有这些体验来自腾讯云云开发团队与微信团队联合打造干货分享,内容包括微信小游戏首发经验分享。 有人说微信小程序游戏的百花齐放 活像十几年前的4399小游戏称霸互联网的景象 歪,斗地主吗,三缺二, 不用下app,小程序就能玩,我保证不抢地主让你抢! ...... ‘...

    zhonghanwen 评论0 收藏0
  • 技术人攻略访谈三十六|马鉴:玩Flash十五年,养出一只“神经猫”

    摘要:导语本期采访对象马鉴,白鹭游戏引擎联合创始人。几周前,宣布关闭中国研发公司,仅保留销售团队。马鉴的照片拍摄于年前,那会儿他刚加入被收购之前。 showImg(https://segmentfault.com/img/bVddbs); 文:Gracia (本文为原创内容,部分或全文转载均需经过作者授权,并保留完整的作者信息和技术人攻略介绍。) 导语:本期采访对象马鉴@7yue,Egr...

    blair 评论0 收藏0
  • 2021年阿里云金秋上云季攻略,注册即可抽MacBook Air 等好礼

    摘要:燃情九月钜惠金秋值此季节,阿里云又推出了金秋上云季,精选百款产品,助力创业新势力。注册登陆还可抽取天猫精灵企业电子书大礼包等好礼。燃情九月 钜惠金秋!值此季节,阿里云又推出了金秋上云季,精选百款产品,助力创业新势力。从9月1日开始,每天上午10点、下午4点将会放出爆款产品,进行限量秒杀,大家不要错过。注册登陆还可抽取MacBook Air、天猫精灵、企业电子书大礼包等好礼。 会...

    Caizhenhao 评论0 收藏0
  • 如何利用MongoDB打造TOP榜小程序

    摘要:第二部分我们推出了一套新的解决方案,适合小白开发者,适合初创公司,可以在微信开发小程序的同时,能够使用腾讯云的资源,享受腾讯云的各种服务。我想问一下现在在座的有没有用我们腾讯云的或者是有没有用的自建也可以。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云数据库 TencentDB发表于云+社区专栏 今天我分享的主题内容大概是两部分,最主要的还是小游戏和小程序...

    Airy 评论0 收藏0
  • 技术人攻略访谈三十九|HTML5社区田爱娜:女神哪有天生,坚守就是一切

    摘要:导语本期采访对象田爱娜,梦工场创始人。在前端开发圈子里,娜姐被奉为女神,早在年,她已声名鹊起。第二是增加社区的参与感,让社区成员展示各种才艺。前两年有工程师组成乐团来作峰会开场演出,已经成为梦工场御用乐队。 showImg(https://segmentfault.com/img/bVkmMX); 文:Gracia (本文为原创内容,部分或全文转载均需经过作者授权,并保留完整的作者信...

    Salamander 评论0 收藏0

发表评论

0条评论

lewinlee

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<