根据自己配置 随意搭配
这是 三个config server 一个分片 副本集 一个mongos
version: '3'
services:
csrs1:
image: mongo:latest
container_name: csrs1
command: mongod --noauth --configsvr --replSet csrs --dbpath /data/db
csrs2:
image: mongo:latest
container_name: csrs2
command: mongod --noauth --configsvr --replSet csrs --dbpath /data/db
csrs3:
image: mongo:latest
container_name: csrs3
command: mongod --noauth --configsvr --replSet csrs --dbpath /data/db
mongos:
image: mongo:latest
container_name: mongos1
command: mongos --noauth --configdb csrs/csrs1:27019,csrs2:27019,csrs3:27019
shrs1:
image: mongo:latest
command: mongod --noauth --dbpath /data/db --shardsvr --replSet shrs
shrs2:
image: mongo:latest
command: mongod --noauth --dbpath /data/db --shardsvr --replSet shrs
shrs3:
image: mongo:latest
command: mongod --noauth --dbpath /data/db --shardsvr --replSet shrs
直接 docker-compose up -d
配置 config server 副本集
然后 进入 任意一个 config server中 ,例如 进入 csrs1
docker exec -it csrs1 bash
然后连接到 mongo --port 27019
然后进行配置
config = {_id:"csrs",configsvr:true,members:[{_id:0,host:"csrs1:27019"},{_id:1,host:"csrs2:27019"},{_id:2,host:"csrs3:27019"}]}
rs.initiate(config)
rs.status() #应该当前节点 会变成 主节点
配置 shard 分片 副本集
# 进入 mongo
docker exec -it shrs1 bash
#然后 连接
mongo --port 27018
config = { _id:"shrsd", members:[
{_id:0,host:"shrs1:27018"},
{_id:1,host:"shrs2:27018"},
{_id:2,host:"shrs3:27018"}
]
}
rs.initiate(config)
rs.status() # 不出意外 此节点就会成为主节点
#########如果 你是用了 另一种方式 进行添加 可能 出现下面mongos无法 添加成功
rs.initirte()
rs.add("shrs2:27018)
rs.add("shrs3:27018)
rs.status()
# 这样做 可以添加成功 但是下面mongos 无法成功 添加
然后 配置 mongos
# 进入mongos
docker exec -it mongos1 mongo
# 然后
use admin
sh.addShard("shrs/shrs1:27018,shrs2:27018,shrs3:27018)
# 应该 就添加上了
# 然后 试试分片
# 设置数据库 分片
db.runCommand( { enablesharding :"testdb"});
# 设置 表 以什么字段 进行分片 我这里是以 id hashed 散列分布 用其他的 可能出现数据太小 无法分布 但是 我们这只有一个 也不存在什么分布 不分布
sh.shardCollection("testdb.table1", { id: "hashed" } )
use testdb
for (var i = 1; i <= 100000; i++){db.table1.save({_id:i,"test1":"testval1"})}
#不出意外 就可以看见 数据插入了 如果只有一个分片副本集 跟普通副本集差不多 所以 我们现在 再加一个 分片
后面在写吧 脑子里 太多 太乱了
网友评论