MongoDB进阶之路:不仅仅是技术研究,还有优化和最佳实践

2017 年 10 月 23 日 云栖社区

摘要: MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。


本文将从操作手册、技术研究、会议分享、场景应用等几个方面给大家推荐干货好文。


操作手册


MongDB操作手册


快速入门旨在帮助您快速创建MongoDB实例、对实例进行基本设置以及连接实例数据库,让您知晓从购买MongoDB实例到开始使用实例的基本流程。


阅读详情:http://click.aliyun.com/m/32927/ 


MongDB视频教程


1.白名单设置及连接

http://click.aliyun.com/m/32936/


2.备份与恢复

http://click.aliyun.com/m/32939/


3.监控与报警

http://click.aliyun.com/m/32937/


4.实例创建

http://click.aliyun.com/m/32933/


5.网络类型切换

http://click.aliyun.com/m/32934/


技术研究


1.MongoDB Driver:使用正确的姿势连接复制集


MongoDB复制集(Replica Set)通过存储多份数据副本来保证数据的高可靠,通过自动的主备切换机制来保证服务的高可用。但需要注意的时,连接副本集的姿势如果不对,服务高可用将不复存在。


阅读详情:http://click.aliyun.com/m/32940/ 


2.MongoDB Driver:使用正确的姿势连接分片集群


MongoDB分片集群(Sharded Cluster)通过将数据分散存储到多个分片(Shard)上,来实现高可扩展性。实现分片集群时,MongoDB 引入 Config Server 来存储集群的元数据,引入 mongos 作为应用访问的入口,mongos 从 Config Server 读取路由信息,并将请求路由到后端对应的 Shard 上。


阅读详情:http://click.aliyun.com/m/32941/


3.MongoDB云数据库常见问题诊断


MongoDB的主备节点在运行过程中是不固定的,实例重启、升级、节点故障等都有可能导致主备切换,在生产环境应该使用副本集的方式来正确连接MongoDB来实现高可用。


阅读详情:http://click.aliyun.com/m/32942/


4.MongoDB疑难杂症分析及优化


本文主要介绍阿里云 MongoDB 数据库上客户遇到的问题,及相应的解决方案。


阅读详情:http://click.aliyun.com/m/32943/


5.MongoDB复制集原理


Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。


阅读详情:http://click.aliyun.com/m/32945/ 


6.MongoDB复制集同步原理解析


本文是对MongoDB高可用复制集原理的补充,会详细介绍MongoDB数据同步的实现原理。


阅读详情:http://click.aliyun.com/m/32947/


7.MongoDB索引原理


为什么需要索引? 当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql)。


阅读详情:http://click.aliyun.com/m/32948


8.MongoDB Sharded cluster架构原理


为什么需要Sharded cluster? MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『可扩展性』,通过json文档来实现灵活模式,通过复制集来保证高可用,通过Sharded cluster来保证可扩展性。


阅读详情:http://click.aliyun.com/m/32950/


9.关于MongoDB Sharding,你应该知道的


当你考虑使用 Sharded cluster 时,通常是要解决如下2个问题:

1)存储容量受单机限制,即磁盘资源遭遇瓶颈。

2)读写能力受单机限制(读能力也可以在复制集里加 secondary 节点来扩展),可能是 CPU、内存或者网卡等资源遭遇瓶颈,导致读写能力无法扩展。


阅读详情:http://click.aliyun.com/m/32951/


10.MongoDB sharding chunk 分裂与迁移详解


云数据库 MongoDB 版,基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。


阅读详情:http://click.aliyun.com/m/32952/


11.MongoDB Secondary 延时高(同步锁)问题分析


MongoDB 复制集里 Secondary 不断从主上批量拉取 oplog,然后在本地重放,以保证数据与 Primary 一致。同步原理参考MongoDB复制集同步原理解析。


阅读详情:http://click.aliyun.com/m/32953/


12.MongoDB dropdatabase 后,数据能恢复么?


最近好几个社区用户咨询,错误的执行了 dropDatabse 把数据库误删除了(或 dropCollection 误删集合),有什么方法能恢复数据?本文主要介绍几种可能有效的恢复方案。 


阅读详情:http://click.aliyun.com/m/32954/


13.MongoDB请求处理流程


Mongodb多存储引擎支持机制介绍了Mongodb存储层创建数据库、创建集合、插入文档等数据库操作接口,本文将介绍mongodb处理客户端请求的模型。


阅读详情:http://click.aliyun.com/m/32955/


14.MongoDB使用教程系列文章--Driver原理(初始化)


Driver是MongoDB非常重要的组成部分,通过不同的配置实现Secondary访问;读写分离,动态感知集群容灾切换等功能。MongoDB目前已经覆盖了大部分的开发语言,常见的JAVA到Go,可以参考官方连接MongoDB Drivers。


阅读详情:http://click.aliyun.com/m/32956/


15.MongoDB Wiredtiger存储引擎实现原理


Mongodb-3.2已经WiredTiger设置为了默认的存储引擎,最近通过阅读wiredtiger源代码(在不了解其内部实现的情况下,读代码难度相当大,代码量太大,强烈建议官方多出些介绍文章),理清了wiredtiger的大致原理,并简单总结,不保证内容都是正确的,如有问题请指出,欢迎讨论交流。


阅读详情:http://click.aliyun.com/m/32957/


16.MongoDB mmapv1存储引擎解析


mongodb的mongod服务管理一个数据目录,可包含多个DB,每个DB的数据单独组织,本文主要介绍mmapv1存储引擎的数据组织方式。


阅读详情:http://click.aliyun.com/m/32958/


17.图解故障服务器下线:关于阿里云MongoDB高可用的探秘


服务器容灾一直是云服务运维过程中无法避开的问题。MongoDB采用的是什么方法,得以做到在有机器故障的情况下依旧能保证用户业务的高可用?最近举行的“MongoDB Sharding杭州用户交流会”中,针对这一问题,阿里云资深研发工程师果实分享了关于MongoDB 故障服务器如何下线方面的详尽的技术解密。


阅读详情:http://click.aliyun.com/m/32959/


18.阿里云MongoDB Sharding备份和恢复服务深度解密


大数据时代,数据保存的重要性不言而喻。在数据保存过程中,数据的备份更是一个值得深入研究的课题。在3月12日下午举行的MongoDB杭州用户交流会上,阿里云技术专家明俨分享了MongoDB Sharding备份和恢复的技术解密。


阅读详情:http://click.aliyun.com/m/32960/


会议分享


1.MongoDB最佳实践及性能优化(DTCC中国数据库技术大会分享PPT)


在北京DTCC分享了「32 Tips to Boost MongoDB Performance」,本文是分享的PPT以及重要内容的注解。 注解:本次分享主要「自底向上」的介绍提升 MongoDB 服务性能需要注意的问题,从硬件、操作系统、服务端一直到应用端,前面3个层次的建议主要面向DBA及运维人员,而最上层的应用开发建议主要面向开发者。


阅读详情:http://click.aliyun.com/m/32961/ 


2.MongoDB秒级备份恢复(SDCC上海站数据库核心技术与应用实战峰会分享PPT)


本文是作者在CSDN举办的SDCC上分享的PPT内容,主要介绍如何对MongoDB复制集及分片集群实现任意时间点的备份恢复。


阅读详情:http://click.aliyun.com/m/32963/ 


3.MongoDB最佳实践及问题案例分析


本文主要介绍MongoDB最佳时间以及线上问题的案例分析。


阅读详情:http://click.aliyun.com/m/32964/


4.基于MongoDB的高并发高可用政府云平台架构实践


微软MSDN特邀讲师徐雷分享《基于MongoDB的政府云平台高并发高可用HA架构实践 》,从自身实践出发,讲述了政府云平台分层、技术栈选型、物理架构、API架构及DB数据库架构的设计思路和方法。


阅读详情:http://click.aliyun.com/m/32965/


5.MongoDB分布式架构演进


文章内容为2016年 PostgresSQL 中国用户会上分享内容,主要介绍 MongoDB 高可用、可扩展的分布式架构的演进过程。


阅读详情:http://click.aliyun.com/m/32966/


场景应用


1.什么场景应该用 MongoDB ?


月初在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨的技术话题,有近5000人关注了该话题讨论,这里就MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB?


阅读详情:http://click.aliyun.com/m/32967/


2.MongoDB应用案例:使用 MongoDB 存储日志数据


线上运行的服务会产生大量的运行及访问日志,日志里会包含一些错误、警告、及用户行为等信息,通常服务会以文本的形式记录日志信息,这样可读性强,方便于日常定位问题,但当产生大量的日志之后,要想从大量日志里挖掘出有价值的内容,则需要对数据进行进一步的存储和分析。


阅读详情:http://click.aliyun.com/m/32968/


3.MongoDB应用案例:使用 MongoDB 存储商品分类信息


电商业务一个基本的功能模块就是存储品类丰富的商品信息,各种商品特性、参数各异,MongoDB 灵活的文档模型非常适合于这类业务,本文主要介绍如何使用 MongoDB 来存储商品分类信息。


阅读详情:http://click.aliyun.com/m/32969/


4.MongoDB数据建模小案例:朋友圈评论内容管理


社交类的APP需求,一般都会引入“朋友圈”功能,这个产品特性有一个非常重要的功能就是评论体系。


阅读详情:http://click.aliyun.com/m/32970/


5.MongoDB数据建模小案例:物联网时序数据库建模


注:本案例来自MongoDB官方教程PPT,也是一个非常典型的CASE,故此翻译,并结合当前MongoDB版本做了一些内容上的更新。 本案例非常适合与IoT场景的数据采集,结合MongoDB的Sharding能力,文档数据结构等优点,可以非常好的解决物联网使用场景。


阅读详情:http://click.aliyun.com/m/32971/


6.阿里云MongoDB与EMR的HelloWorld


越来越多的应用采用MongoDB作为数据存储层,性能高,扩展性强,通过WriteCocern参数还可以控制写入持久级别,CAP上灵活配置。文档型的存储结构又是特别适合物联网,游戏等领域,这些数据也蕴藏这巨大的价值,就像是金矿一样,需要挖掘。虽然MongoDB提供了MapReduce功能,但功能相对薄弱,如果说MongoDB MapReduce是铁锹,Spark就是一台真正的挖掘机。


阅读详情:http://click.aliyun.com/m/32972/


7.当物流行业遇见MongoDB


快递物流系统里最常见的一种业务类型就是订单的查询和记录。利用MongoDB数据库能够帮助企业快速搭建物流快递系统,助力物流企业轻松上云。


阅读详情:http://click.aliyun.com/m/32973/


8.天生一对,当游戏遇上MongoDB


当游戏遇上MongoDB,会碰撞出什么样的火花,本文为您一一道来。MongoDB针对游戏灵活多变需求、一些专有场景-道具自动过期和附近玩家、高可用、高可扩展、回档、滚服、运营数据分析等场景都有非常好的解决方案,可谓是天生一对。


阅读详情:http://click.aliyun.com/m/32974/


官网


1.云数据库 MongoDB版

云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。


阅读详情:http://click.aliyun.com/m/24561/


2.云数据库MongoDB Sharding发布

支持分表存储、自建迁移、副本集转Sharding等

提供容灾备份、弹性扩容、监控运维等方案。


阅读详情:http://click.aliyun.com/m/24564/


3.云数据库MongoDB独享实例上线

独享资源,保障业务持久稳定。


阅读详情:http://click.aliyun.com/m/32975/


往期精彩文章

0. 【沉淀】迁移、Insert和写入性能——数十倍提升,阿里王骞谈经历和收获

1. 如何在三年内快速成长为一名技术专家

2. 如何打造千万级Feed流系统

3.《阿里巴巴Java开发规约》IDEA插件与Eclipse插件使用指南

4. 解读《阿里巴巴Java开发手册》及《Java规约插件》背后的故事

5. 阿里巴巴Java开发规约插件全球首发!


-END-

云栖社区

ID:yunqiinsight

云计算丨互联网架构丨大数据丨机器学习丨运维


登录查看更多
0

相关内容

MongoDB 是一种文件导向的 NoSQL 数据库,由 C++ 撰写而成。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
阿里技术大牛:一份架构师成神路线图!
51CTO博客
30+阅读 · 2019年7月6日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
亿级订单数据的访问与储存,怎么实现与优化
ImportNew
11+阅读 · 2019年4月22日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
大数据流处理平台的技术选型参考
架构文摘
4+阅读 · 2018年3月14日
【AI说】揭秘京东实时数据仓库背后的神秘力量—JDQ
A Modern Introduction to Online Learning
Arxiv
20+阅读 · 2019年12月31日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
Arxiv
3+阅读 · 2018年6月14日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
相关资讯
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
阿里技术大牛:一份架构师成神路线图!
51CTO博客
30+阅读 · 2019年7月6日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
亿级订单数据的访问与储存,怎么实现与优化
ImportNew
11+阅读 · 2019年4月22日
亿级订单数据的访问与存储,怎么实现与优化?
码农翻身
16+阅读 · 2019年4月17日
大数据流处理平台的技术选型参考
架构文摘
4+阅读 · 2018年3月14日
【AI说】揭秘京东实时数据仓库背后的神秘力量—JDQ
Top
微信扫码咨询专知VIP会员