0.创建网段
docker network create mongo
1.编写yaml文件,,这里我命名fates-mongo-compose.yaml
以下这个文件,建立3个mongo shard服务,3个secondary服务,3个arbiter服务,3个mongo config服务, 1个mongos服务:
2.编写deploy-and-start.sh脚本
该脚本流程详细描述一下
1. 先启动mongodb分片容器组
2. 睡眠30s等待容器全部完全启动(可能不需要30s)
3. 操作config1,配置config副本集,将config*容器组作为config角色,此时config1作为config副本集里的主节点
4. 操作shard1、shard2、shard3,将shard*容器组作为shard角色。
5. 将shard1、shard2、shard3加入分片集群组。
3.运行
执行脚本
# sh deploy-and-start.sh 等待脚本启动完成,如果出现connect fail报错,检查一下网络,再次启动一次脚本即可。
到这里,单机版的mongodb的分片集群,就搭建好了,一般真正的运维环境,Mongodb集群应该分布在不同的机器,把名称+端口缓存ip+端口就行了。
这样,一共创建了13个容器,包括
1个mongos
3个configserver
3个shard
3个secondary
3个arbiter
他们组成了我们前面所说的集群!如果用图表示这个集群,他们就是:
4.验证:
#需要进入mongodb客户端进行验证:进入mongos容器:
如上所示, 三个分片集已经运行起来了,并且状态都是正常, 如上三个分片都显示:"state" : 1
查看分片详细:
进入mongos客户端,按着如下进行操作:
如上,可以看到(分片集+副本集)成功了: