MongoDB的关键特点

MongoDB的关键特点主如果3个,第一个就是灵活荡态的文档模型,第二个是高可用副本集,第三个是MongoDB的程度扩大,也就是sharding。
这张图应当可以很好地解释这些X-aaS。最左边是传统企业的IT,所有的活都要本身干,大年夜数据中间办事器到操作体系数据库再到上层营业体系。IaaS开端就进入云计算典范畴了,最基本的是云办事器,不须要再关怀机房啊硬件拉,直接就可以用。然后再往右客户须要存眷的越来越少,脏活累活都交给办事供给商来干。
1、灵活荡态的文档模型

3、监控报警
MongoDB以一种叫做BSON(二进制JSON)的存储情势将数据作为文档存储。具有类似构造的文档平日被组织成集合。可以把集合算作类似于关系数据库中的的表:文档对应的是行,字段对应的昵嘈。
MongoDB将一笔记录的所稀有据聚合在一个文档中,而在关系数据库中则偏向于将数据分布在多个表中。如许做有几个好处,一是因为数据集合,削减了多表JOIN的需求,如许只须要读一次就可以读到所稀有据,在机能上会有很大年夜优势。
别的,这种模型加倍接近我们日常平凡编程说话中的对象构造,可以便利开辟者进行数据映射。
最后就是这种模型是schema-less的,也就是在MongoDB中不须要像关系数据库一样去事先定义每个表的schema。MongoDB一个集合内的文档之间可以拥有不合的构造,可以轻松为一个新的文档添加和削减字段,不会有任何的机能影响。这个特点异常合适开辟一些新产品,可以快速迭代。
当然,过于灵活就可能导致纷乱。有时刻我们想请求文档必须要有某些字段,某些字段必须要有固定的类型。为此,MongoDB供给了一个文档验证功能来对文档的格局进行束缚。
2、高可用副本集

接下来说MongoDB的第二个关键特点,高可用副本集(也可以翻译成复制集)。
MongoDB副本集由一组Mongo实例(过程)构成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所稀有据都写入Primary,Secondary大年夜Primary同步写入的数据,以保持副本集内所有成员存储雷同的数据集,供给数据的高可用。
上图是一个典范的MongDB副本集,包含一个Primary节点和2个Secondary节点。
这里『大年夜多半』的定义是副本集内可投票成员的一半以上,当副本集内存活成员数量不足大年夜多半时,全部副本集将无法选举出Primary,此时副本集将无法供给写办事,处于只读状况。平日建议将副本集成员数量设置为奇数,因为偶数个节点能容忍的节点掉效和比它少1个节点的奇数个节点是一样的,然则可以节俭一个节点的数据存储成本。
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦!
除了初始化的时刻会进行选举,MongoDB副本集的高可用办事表如今,当副本集中没有Primary节点时,选举都邑进行。比如当Primary节点宕机时,剩下的Secondary节点中会选举出新的Primary(只须要知足大年夜多半成员存活的前提)。选举应用的算法是基于Raft协定,然则可以经由过程为节点配制揭捉?举优先级对选举结不雅进行控制。
此外须要提一下,有一些比较常见的特别的Secondary。一个是Hidden,Hidden节点和通俗的Secondary的差别是它是对Driver隐蔽的节点,也就是客户端无法拜访到Hidden,别的就是它的选举优先级是0,也就是它不克不及被选举为Primary。Hidden节点上拥稀有据,是以平日会用来作一些运维义务,如数捷报份、计算分析等。
别的还有一个是Arbiter,Arbiter是只介入投票,然则不存储数据的节点,这可以用在对可用性有请求,又页舷格控制成本的场景。
此外还有如Priority0节点、Delayed节点等。
3、MongoDB的程度扩大


Sharded cluster由Shard、Mongos和Config server 3个组件构成。Mongos本身并不持久化数据,Sharded cluster所有的元数据都邑存储到Config Server,而用户的数据则会分散存储到各个shard。Mongos启动后,会大年夜config server加载元数据,开端供给办事,将用户的请求精确路由到对应的Shard。
Sharded cluster支撑将单个集合的数据分散存储在多个shard上,用户可以指定根据集合内文档的某个字段即shard key来分布数据,今朝重要支撑2种数据分布的策略,范围分片(Range based sharding)或hash分片(Hash based sharding)。
范围分片下,文档是根据其shard key的值进行分片。shard key的值相邻近的文档比较有可能会被放在同一个shard上,这种方法实用于须要应用范围萌芽的营业。
哈希分片下,文档根据其shard key的hash值进行分片。这会包管数据分布比较平均,然则晦气于范围萌芽。
跟着数据量的增多,MongoDB也会主动在后台对数据以chunk为单位进行负载均衡。
三、若何搭建MongoDB数据库即办事
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 谈到人工智能(AI)总会有人认为恐怖。到底怕在何处?你有证据么?巧了。美国问答网站Quora上就有这么一个问>>>详细阅读
本文标题:从零开始搭建MongoDB数据库即服务
地址:http://www.17bianji.com/lsqh/37383.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示