青春纸盒子

文: 芦苇

你喜欢我笑的样子

我靠上了落寞的窗子

晚风吹起了我的袖子

明月沾湿了你的眸子


转身,你走出了两个人的圈子

树影婆娑,整座院子


挽起袖子

回头,把揽你忧伤一地的影子

装进,青春,这纸盒子


更多代码请关注我的微信小程序: "ecoder"

luwei0915

导航

MongoDB集群部署原理

集群部署

MongoDB的集群部署方案中有三种节点,分别是:数据存储节点(mongod)、配置文件存储节点(mongod config)、路由接入节点(mongos)。具体过程是,客户端直接与路由节点(路由节点在分片的情况下起到负载均衡的作用)相连,路由节点从配置节点查询数据,根据查询结果去实际的存储节点上查询和存储数据。

MongoDB的部署方案有单机部署、副本集(主备)部署、分片部署、副本集与分片混合部署。如图,是混合部署:

副本集:每个副本集中存储的数据是相同的,目的是容灾。可以认为是一台存储数据的机器,一个副本集数据一定是一个完整的整体。

分片:目的是为了数据的拓展,按照片键进行节点划分,数据根据片键存储到对应的服务器上。

混合的部署方式如图:

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

 

混合方式下读MongoDB数据的流程图:

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

 

而读数据则只要从任一结点中读取,具体到哪个结点读取是可以指定的:
在这里插入图片描述

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

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

配置结点:

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

posted on 2019-03-26 13:51  芦苇の  阅读(462)  评论(0)    收藏  举报