Mongodb集群Docker一键部署文档
1、copy文件
将文件夹server1、server2、server3分别拷到machine-1、machine-2和machine-3的“数据盘”的mongodb(需要自己新建)目录下;
2、运行启动实例脚本
# 进入machine-1的server1文件夹下运行
sh deploy_mongo_start_1.sh cacheSizeGB
# 进入machine-2的server2文件夹下运行
sh deploy_mongo_start_2.sh cacheSizeGB
# 进入machine-3的server3文件夹下运行
sh deploy_mongo_start_3.sh cacheSizeGB
# 注意cacheSizeGB为实例限制内存大小,不传默认2G;实际情况根据mongodb可用内存设置,4G可用->1G限制,
# 8G可用->3G限制,16G可用->4G限制,32G可用->8G限制,数值必须为整数;
3、运行配置实例脚本
# 进入machine-1的server1文件夹下运行
sh deploy_mongo_config_1.sh machine-1-ip machine-2-ip machine-3-ip
# 进入machine-2的server2文件夹下运行
sh deploy_mongo_config_3.sh machine-1-ip machine-2-ip machine-3-ip
# 进入machine-3的server3文件夹下运行
sh deploy_mongo_config_3.sh machine-1-ip machine-2-ip machine-3-ip
# 注意:machine-1-ip machine-2-ip machine-3-ip 均为内网ip,顺序不能随意改动,不然会影响配置结果
4、检查集群是否成功
#在machine-3的机器上执行
docker exec -it mongos bash;
mongo --port 20001 ctu -u root -p *** --authenticationDatabase admin;
db.stats(); #查看库分片【有rs1 、rs2、rs3】
db.mobileIndex.stats() #查看集合是否分片成功【"sharded" : true】
db.mobileToken.stats() #查看集合是否分片成功【"sharded" : true】
db.webDevice.stats() #查看集合是否分片成功【sharded" : true】
# 测试数据
for(var i=1;i<=100000;i++) db.mobileToken.save({token:Math.random()*10000000000000000,hardId:"1234567890",createIp:"127.0.0.1",index:"1234567890",osType:"1"});
# 查看数据分片情况
db.getCollection('mobileToken').getShardDistribution();
# 删除测试数据
db.getCollection('mobileToken').remove({});
部署镜像和脚本我后面放到百度云,如有需要可以私信我
网友评论