一、集群介绍
sharding通过将数据集分布于多个也称作分片(shard)的节点上来降低单节点的访问压力。每个分片都是一个独立的数据库,所有的分片组合起来构成一个逻辑上的完整意义的数据库。因此,分片机制降低了每个分片的数据操作量及需要存储的数据量。
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。
二、集群搭建
1.cd /usr/java
2.mkdir mongodbShares,新建 mongodbShares 文件夹
3.在mongodbShares中新建 configsvr mongos shards文件夹,用于部署配置服务器、mongos服务器和shards。
4.进入到shards,新建 shard1 shard2 shard3文件夹
5.在configsvr中新建 config1
6.在config1中新建 data log
7.cd data,然后 mkdir db
8.在config1中新建config.conf文件,即touch config.conf
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 (28002、28003)和 logpath。
13.分别启动 三个config:mongod --config config.conf
14.