从节点默认不对外提供读服务(由于主从延迟会致使从从节点上读到脏数据)。服务器
复制集不能容忍一半以上发生故障(为了确保不会发生一个复制集中出现多个主节点的状况)。app
Shard1_ReplicaMember1 spa
mongod --port 30001 --logpath cluster/log/Shard1_ReplicaMember1.log --logappend --shardsvr --replSet Shard1 -dbpath cluster/data/Shard1_ReplicaMember1 --directoryperdb --rest
Shard1_ReplicaMember2 rest
mongod --port 30002 --logpath cluster/log/Shard1_ReplicaMember2.log --logappend --shardsvr --replSet Shard1 -dbpath cluster/data/Shard1_ReplicaMember2 --directoryperdb --rest
Shard1_ReplicaMember3 code
mongod --port 30003 --logpath cluster/log/Shard1_ReplicaMember3.log --logappend --shardsvr --replSet Shard1 -dbpath cluster/data/Shard1_ReplicaMember3 --directoryperdb --rest
Shard2_ReplicaMember1 blog
mongod --port 40001 --logpath cluster/log/Shard2_ReplicaMember1.log --logappend --shardsvr --replSet Shard2 -dbpath cluster/data/Shard2_ReplicaMember1 --directoryperdb --rest
Shard2_ReplicaMember2 部署
mongod --port 40002 --logpath cluster/log/Shard2_ReplicaMember2.log --logappend --shardsvr --replSet Shard2 -dbpath cluster/data/Shard2_ReplicaMember2 --directoryperdb --rest
Shard2_ReplicaMember3 it
mongod --port 40003 --logpath cluster/log/Shard2_ReplicaMember3.log --logappend --shardsvr --replSet Shard2 -dbpath cluster/data/Shard2_ReplicaMember3 --directoryperdb --rest
ConfigA io
mongod --port 20001 --logpath cluster/log/ConfigA.log --logappend --configsvr -dbpath cluster/config_data/ConfigA
ConfigB ast
mongod --port 20002 --logpath cluster/log/ConfigB.log --logappend --configsvr -dbpath cluster/config_data/ConfigB
先启动
mongos --port 10001 --logpath cluster/log/mongos.log --logappend --configdb 127.0.0.1:20001,127.0.0.1:20002
再配置
mongo 127.0.0.1:27017/admindb.runCommand({ addshard : "Shard1/127.0.0.1:30001",name:"Shard1"})db.runCommand({ addshard : "Shard2/127.0.0.1:40001",name:"Shard2"})db.runCommand({ listshards : 1})db.runCommand({ enablesharding : "test"})db.runCommand({ shardcollection : "test.c1",key : {_id: 1} })