1.搭建mongdb分片
docker run -d -p 20001:27017 --name rs1 mongo --shardsvr --port 27017 --replSet rs1
docker run -d -p 20000:27017 --name rs2 mongo --shardsvr --port 27017 --replSet rs2
1.2 进入容器,初始化分片
docker exec -it rs1 /bin/bash
use mongo
config = {_id:"rs1",members:[ {_id:0,host:"192.168.106.131:20001"}] }
rs.initiate(config)
rs.status()
docker exec -it rs2 /bin/bash
use mongo
config = {_id:"rs2",members:[ {_id:0,host:"192.168.106.131:20000"}] }
rs.initiate(config)
rs.status()
2.docker run config
docker run -d -p 21001:27017 --name cf1 mongo --configsvr --replSet crs --port 27017
docker run -d -p 21002:27017 --name cf2 mongo --configsvr --replSet crs --port 27017
2.2 进入容器初始化配置
docker exec -it cf1 /bin/bash
mongo
config = {_id:"crs", configsvr:true, members:[ {_id:0,host:"192.168.106.131:21001"}, {_id:1,host:"192.168.106.131:21002"} ] }
rs.initiate(config)
rs.status()
docker exec -it cf2 /bin/bash
mongo
config = {_id:"crs", configsvr:true, members:[ {_id:0,host:"192.168.106.131:21001"}, {_id:1,host:"192.168.106.131:21002"} ] }
rs.initiate(config)
rs.status()
3.docker run mongos
docker run --name ms1 -d -p 22001:27017 --entrypoint "mongos" mongo --configdb crs/192.168.106.131:21001,192.168.106.131:21002 --port 27017
docker run --name ms2 -d -p 22001:27017 --entrypoint "mongos" mongo --configdb crs/192.168.106.131:21001,192.168.106.131:21002 --port 27017
3.1 进入容器添加分片
sh.addShard("rs1/192.168.106.131:20001")
sh.addShard("rs2/192.168.106.131:20000")
数据库启用分片
sh.enableSharding("test")
分片集合制定片键
sh.shardCollection("test.test", {"_id": "hashed" })
测试插入数据
use test
for (i = 1; i <= 1001; i=i+1){
db.test.insert('test': 1})
}