美文网首页
docker 搭建mongodb 分片集群 ---- 单机版

docker 搭建mongodb 分片集群 ---- 单机版

作者: 你常不走的路 | 来源:发表于2018-09-02 20:55 被阅读110次

    根据自己配置 随意搭配

    这是 三个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"})}
    
    #不出意外 就可以看见 数据插入了 如果只有一个分片副本集 跟普通副本集差不多  所以 我们现在 再加一个 分片
    
    后面在写吧  脑子里 太多 太乱了 
    
    

    相关文章

      网友评论

          本文标题:docker 搭建mongodb 分片集群 ---- 单机版

          本文链接:https://www.haomeiwen.com/subject/fhxvwftx.html