mongodb基础(图解mongodb底层原理)

Mongodb的集群部署方案有三类角色:实际数据存储节点,配置文件存储节点和路由接入节点。

链接的客户端直接与路由节点相连,从配置节点上查询数据,根据查询结果到实际的存储节点上查询和存储数据。

Mongodb的部署方案有单机部署,复本集(主备)部署,分片部署,复本集与分片混合部署。

混合部署方式如图:

mongodb基础(图解mongodb底层原理)_第1张图片

混合部署方式下向MongoDB 写数据的流程如图:

mongodb基础(图解mongodb底层原理)_第2张图片

 混合部署方式下读MongoDB 里的数据流程如图:

mongodb基础(图解mongodb底层原理)_第3张图片

对于复本集,又有主和从两种角色,写数据和读数据也是不同,写数据的过程是只写到主结点中,由主
结点以异步的方式同步到从结点中:

mongodb基础(图解mongodb底层原理)_第4张图片 

 而读数据则只要从任一结点中读取,具体到哪个结点读取是可以指定的:

mongodb基础(图解mongodb底层原理)_第5张图片

 对于MongoDB 的分片,假设我们以某一索引键(ID)为片键,ID 的区间[0,50],划分成5 个chunk,
分别存储到3 个片服务器中,如图所示:

mongodb基础(图解mongodb底层原理)_第6张图片

 假如数据量很大,需要增加片服务器时可以只要移动chunk 来均分数据即可。

配置结点:
存储配置文件的服务器其实存储的是片键与chunk 以及chunk 与server 的映射关系,用上面的数据表
示的配置结点存储的数据模型如下表:

map1

key range chunk
[0,10} chunk1
[10,20} chunk2
[20,30} chunk3
[30,40} chunk4
[40,50} chunk5

 map2

chunk shard
chunk1 shard1
chunk2 shard2
chunk3 shard3
chunk4 shard4
chunk5 shard5

 路由节点:

路由角色的节点在分片的情况下起到负载均衡的作用。

 

 

 

你可能感兴趣的:(mongodb)