MongoDB杭州用户交流会精彩内容
2016年3月5日,MongoDB杭州用户交流会在阿里巴巴西溪园区顺利举行,来自全国各地的140多名MongoDB用户参加了交流会,接下来我将为大家介绍交流会现场的精彩内容。
MongoDB杭州用户会正式成立
MongoDB中文社区发起人唐建法TJ介绍,MongoDB中文社区自成立以来,已经成立了上海、深圳、北京用户会,中文社区先后举办了多次线上、线下的技术交流及讲座,总参与人数超过3000人。此次杭州用户会的成立进一步壮大了MongoDB社区,良好的社区生态最终将让所有的MongoDB用户收益,希望有更多的人参与到社区的建设中来.
- 左2为MongoDB杭州用户会会长、阿里云MongoDB技术负责人叶翔
- 右2为MongoDB中文社区发起人唐建法TJ
什么时候该用MongoDB
唐建法TJ的演讲主要介绍了MongoDB的主要优势以及限制,同时将MongoDB与关系型数据库、NoSQL数据库进行了对比,最后在MongoDB选型上给了开发者一些建议。
MongoDB主要优势:灵活文档模型 + 高可用 + 水平扩展
TJ在介绍优势的同时,也介绍了目前MongoDB存在的一些不足及限制(果然是不坑程序员的业界良心,为TJ点赞,为MongoDB点赞),了解了MongoDB的局限性,开发者就能更好的做数据库选型,避免踩坑。
TJ将MongoDB与关系型数据库Oracle、MySQL、PostgreSQL,以及NoSQL数据库HBase、Cassandra进行了对比分析,也透露了MongoDB的目标是做通用型的NewSQL数据库,兼有关系型数据库强大功能以及NoSQL数据库易扩展的特性,做数据库领域的瑞士军刀。
MongoDB目前在游戏、社交、电商等很多领域都得到广泛的应用,TJ也向大家介绍了目前MongoDB的一些成功应用案例,这些成功案例对广大MongoDB开发者有很大的指导意义。
最后TJ给MongoDB用户们一些选型建议,开发者如果对是否应该使用MongoDB不太确定,TJ给出一份选型的checklist,只要有一项需求能匹配,就可以考虑使用MongoDB了。
VPGAME如何使用MongoDB?
VPGAME是国际知名的电子竞技综合性服务平台,其技术负责人臧国平介绍,VPGAME主要使用MongoDB Sharding Cluster + Replica Set组合的方式来存储用户行为数据、以及大量比赛数据,通过Replica set保证数据的高可靠,通过Sharding保证高扩展性。VPGAME目前是阿里云MongoDB服务的公测用户,正着手将MongoDB迁移到阿里云上。
阿里云MongoDB云服务架构
阿里云MongoDB云服务于去年12月18日对外公测上线,目前已有数百个用户申请了公测实例,并计划在3月中下旬正式商业化,阿里云MongoDB的技术负责人叶翔为大家揭秘了MongoDB云服务的架构。
阿里云目前已提供对MongoDB复制集(Replica Set)的支持,默认会为用户创建包含3个数据节点的复制集,其中一个Primary、一个Secondary,以及一个Hidden节点。Primary、Secondary对用户可见,用户可以自定义ReadPreference,Hidden节点对用户不可见,目前主要用于实例数据备份以及自动的failover,当有Primary或Secondary节点挂掉时,Hidden会被自动切换为Secondary,保证用户的服务不受影响。
同时叶翔透露,阿里云的MongoDB版本会跟社区并进,接下来会支持MongoDB 3.2,还会提供MongoDB Sharding Cluster,任意时间点备份恢复等强大功能支持,敬请期待。
MongoDB在高德的应用
高德DBA碧壳介绍了MongoDB在高德的应用情况,MongoDB在高德的应用非常广泛,AOS、云图、收藏夹等业务都使用了MongoDB,高德主要因为schema free
、开发成本低以及高可用等特性而选择MongoDB。
高德从MongoDB 2.4开始使用,先后经历了2.6、3.0版本,线上多个版本共存,为了降低运维成本,高德对线上所有的MongoDB在架构、部署、版本等管理上做了标准化,版本上统一使用MongoDB 3.0,并使用wiredtiger作为存储引擎,相比以前的mmapv1引擎,性能上大幅提升,同时还节省了50%的存储空间。
碧壳最后为大家分享了高德在使用MongoDB过程中遇到的一些问题及解决方案,供MongoDB用户们参考。
MongoDB在游戏行业的应用
来自Teambition的周李洋E叔是MongoDB上海用户会会长,在MongoDB社区非常活跃,经常在社区分享高质量的MongoDB文章,帮助社区用户解决问题,同时E叔也是中国第一个通过MongoDB官方认证的DBA(粉丝+1)。E叔多年前就开始在生产环境大量使用MongoDB,有着丰富的MongoDB运维管理经验,E叔结合自己的工作经验,分享了MongoDB在游戏行业的应用。
快速开发、需求多变,是目前很多游戏的共性。开发节奏不能保证,很容易被对手超越;运营需求不能满足,游戏无法吸引用户。MongoDB schema free
的特点很好的满足了游戏行业的需求,开发时不需要过多的设计表结构,保证快速开发上线,动态灵活的文档结构也能很好的支持各种需求的变化,E叔还介绍了目前游戏行业使用MongoDB的典型架构。
虽然MongoDB是schema free,但E叔建议使用者还是要关注存储数据的schema,可以使用一些工具(如MongoDB compass、variety)来分析集合内文档的schema。比如按照预期,集合里每个文档都应该有name字段,但分析发现只有90%的文档中有,那么一定是哪里出了问题,当然现在也可以使用MongoDB 3.2最新推出的Document validation功能,在文档插入时就发现问题。
PG 如何 play with MongoDB?
下面这位身穿Postgres(PG)头戴MongoDB的少年大有来头,他是Postgres 2016年中国用户会主席萧少聪,本次MongoDB杭州用户会成立,兄弟社区派来这名重量级代表前来祝贺。
从萧主席演讲内容看,他似乎来者不善,像是来踢馆的。萧主席介绍了PG的json扩展特性,支持将JSON类型数据直接作为数据库的表字段来存储,读取时也支持提取部分JSON字段,这个特性对使用SQL的用户来说,能更灵活的存取JSON数据,必须点赞;但相比MongoDB对JSON的支持,这个只能算小儿科。
虽然基友社区来者不善,但postgres_fdw这个给力的特性我还是必须得介绍一下,毕竟技术无边界。pgsql fdw支持夸库访问其他的外部数据库,如MySql、MongoDB,如何通过PG来访问MongoDB可以参考PG大牛德哥的文章。
萧主席最后建议大家,目前市面上数据库产品层出不穷,各有所长,用户不要过度在意谁跟强大,应该根据需求选择最适合自己业务的数据库,适合自己的才是最好的。
我是有情怀的小广告
阿里云数据库目前已经提供了MySQL、SQL Server、 Postgres、MognoDB、Redis、Memcache等多种数据库云服务,一定能找到那款适合你的数据库。来这里,你只负责用,其他的交给我们。