关联下share21、share22、share23
- 通过客户端连接
mongo 127.0.0.1:10041
- 配置
rs.initiate({ _id: "rs-file-server-shard2-server", members: [ { _id : 0, host : "192.168.50.100:10041" }, { _id : 1, host : "192.168.50.100:10042" }, { _id : 2, host : "192.168.50.100:10043" } ] });
mongod服务
安装mongos1
docker run --restart=always --privileged=true -p 10011:27017 -v $PWD/config:/etc/mongod -v $PWD/db:/data/db -d --entrypoint mongos --name pro-file-server-mongos1 mongo:4.0.0 -f /etc/mongod/config.conf --configdb rs-file-server-config-server/192.168.50.100:10021,192.168.50.100:10022,192.168.50.100:10023 --bind_ip_all
安装mongos2
docker run --restart=always --privileged=true -p 10012:27017 -v $PWD/config:/etc/mongod -v $PWD/db:/data/db -d --entrypoint mongos --name pro-file-server-mongos2 mongo:4.0.0 -f /etc/mongod/config.conf --configdb rs-file-server-config-server/192.168.50.100:10021,192.168.50.100:10022,192.168.50.100:10023 --bind_ip_all
安装mongos3
docker run --restart=always --privileged=true -p 10013:27017 -v $PWD/config:/etc/mongod -v $PWD/db:/data/db -d --entrypoint mongos --name pro-file-server-mongos3 mongo:4.0.0 -f /etc/mongod/config.conf --configdb rs-file-server-config-server/192.168.50.100:10021,192.168.50.100:10022,192.168.50.100:10023 --bind_ip_all
配置
- mongodb客户端连接
mongo 127.0.0.1:10011
- 配置
sh.addShard("rs-file-server-shard1-server/192.168.50.100:10031,192.168.50.100:10032,192.168.50.100:10033") sh.addShard("rs-file-server-shard2-server/192.168.50.100:10041,192.168.50.100:10042,192.168.50.100:10043")
测试
- mongodb客户端连接
mongo 127.0.0.1:10011
- 创建分片数据库test
sh.enableSharding("test")
- 将collection加入分片并设置分片字段
sh.shardCollection("test.user", {"_id": "hashed" })
- 插入1000条数据
a、切换分片库
use test
b、循环插入
for (i = 1; i <= 1000; i=i+1){db.user.insert({'userIndex': 1})}
- 确认数据
a、查看备份库 每个备份库都是1000
插入完成之后可以在 127.0.0.1:10011,127.0.0.1:10012,127.0.0.1:10013 三台数据库下分别看到test数据库中名为user的Collection拥有一千条数据, 使用以下代码查询记录数 db.getCollection('user').find({}).count() 结果为1000
b、查看分片库 每个分片库之和为1000
现在可以连接到 127.0.0.1:10031,127.0.0.1:10041上使用以上命令查询记录数, 会发现两个数据库的记录数只和正好是1000
- springboot连接
在application.yml配置即可访问mogos数据库: spring: data : mongodb : uri: mongodb://127.0.0.1:10011,127.0.0.1:10012,127.0.0.1:10013/test
参考文档
https://blog.csdn.net/quanmaoluo5461/article/details/85164588