- build many service mongodb:
- docker-compose up
- Setup Shards:
-
docker exec -it shardingbydockercompose_shard00_1 bash
-
mongo scripts/replicaset_0/init_mongodb_replicaset.js
-
docker exec -it shardingbydockercompose_shard10_1 bash
-
mongo scripts/replicaset_10/init_mongodb_replicaset.js
-
docker exec -it shardingbydockercompose_shard20_1 bash
-
mongo scripts/replicaset_20/init_mongodb_replicaset.js
=> Check shard for container:
- docker exec -it docker exec -it shardingbydockercompose_shardx0_1 bash
- mongo rs.status()
- Setup Config Server:
- docker exec -it shardingbydockercompose_configsvr0_1 bash
- mongo scripts/config_replicaset/init_mongodb_replicaset.js
=> Check config for container:
- docker exec -it shardingbydockercompose_configsvr0_1 bash
- mongo rs.status()
- Setup Query Router:
- docker exec -it shardingbydockercompose_router0_1 bash
- mongo scripts/sharding_replicaset/init_mongodb_sharding_replicaset.js
=> Check shard status:
- docker exec -it shardingbydockercompose_router0_1 bash
- mongo sh.status()
- After 6, 7, 8, 9:
- docker exec -it shardingbydockercompose_router0_1 bash
- mongo
- Enable Sharding at Database Level:
- mongos> use example
- mongos> sh.enableSharding("example")
- Enable Sharding at Collection Level:
- mongos> use example
- mongos> db.exCollection.ensureIndex({ _id : "hashed" })
- mongos> sh.shardCollection("example.exCollection", {"_id" : "hashed"})
- Check sharding status:
- mongos> sh.status()
- Insert data and check process partition:
-
mongos> use example
-
mongos> for (var i = 1; i <= 10000; i++) db.exCollection.insert( { x : i } )
-
mongos> use example
-
mongos> db.exCollection.getShardDistribution()
src: