sharding经过将数据集分布于多个也称做分片(shard)的节点上来下降单节点的访问压力。每一个分片都是一个独立的数据库,全部的分片组合起来构成一个逻辑上的完整意义的数据库。所以,分片机制下降了每一个分片的数据操做量及须要存储的数据量。java
A。shards:分片,即数据结点,存储数据和执行计算。为了保证高可用和数据一致性,生产环境中shards应该作成replicasets(防止丢失数据)。集群中有一个primary shards,执行非分片的任务。
B。mongos(query routers):查询路由,负责client的链接,并把任务分给shards,而后收集结果。一个集群中能够有多个query routers(replica sets),以分担客户端请求(负载均衡)。
C。config server:配置服务器。保存了集群的元数据(好比数据放在哪一个shards上),query router经过config server中的配置信 息决定把任务分配到哪一个shards上。从3.2开始,config servers能够作成replica sets
mongodb的shard功能实现于collection级别,但若要在collection上启动shard,还须要事先其相关的数据库上启用之。在数据库上启用shard功能后,MongoDB会为其指定一个主shard。mongodb
1.cd /usr/java数据库
2.mkdir mongodbShares,新建 mongodbShares 文件夹vim
3.在mongodbShares中新建 configsvr mongos shards文件夹,用于部署配置服务器、mongos服务器和shards。服务器
4.进入到shards,新建 shard1 shard2 shard3文件夹app
5.在configsvr中新建 config1负载均衡
6.在config1中新建 data logspa
7.cd data,而后 mkdir dbcode
8.在config1中新建config.conf文件,即touch config.confrouter
9.vim config.conf,添加以下内容:
dbpath=/usr/java/mongodbShares/configsvr/config1/data/db
logpath=/usr/java/mongodbShares/configsvr/config1/log/config.log
logappend=true
fork=true
bind_ip=192.168.80.128
port=27001
configsvr=true
10.cd ../configsvr/
11.拷贝config1,cp -r config1 config2,cp -r config1 config3
12.修改config2 和 config3 中config.conf中的 dbpath 、 port (2800二、28003)和 logpath。
13.分别启动 三个config:mongod --config config.conf
14.