zoukankan      html  css  js  c++  java
  • [Database] Mongodb 分片集群

    MongoDB分片集群配置

    配置服务器配置

    • 配置文件
    dbpath = /mongodb_shard01_config/data
    configsvr = true
    port = 32000
    logpath = /mongodb_shard01_config/log/mongodb.logs
    replSet = dakj_mongodb
    
    • 启动
    // 192.168.1.101
    sudo docker run -itd --name mongodb_shard01_config -p 32000:32000 -v /mongodb_shard01_config:/mongodb_shard_config mongo mongod  --config /mongodb_shard_config/config.conf
    
    // 192.168.1.102
    sudo docker run -itd --name mongodb_shard01_config -p 32000:32000 -v /mongodb_shard01_config:/mongodb_shard_config mongo mongod  --config /mongodb_shard_config/config.conf
    
    // 192.168.1.103
    sudo docker run -itd --name mongodb_shard01_config -p 32000:32000 -v /mongodb_shard01_config:/mongodb_shard_config mongo mongod  --config /mongodb_shard_config/config.conf
    
    
    • 登录任意配置节点
    登录任意配置节点
    ./mongo 192.168.1.101:32000
    
    
    use admin
    var rsc = {_id:'dakj_mongodb',members:[
    {_id:0,host:'192.168.1.101:32000',priority:1},
    {_id:1,host:'192.168.1.102:32000',priority:2},
    {_id:2,host:'192.168.1.103:32000',priority:3}
    ]};
     
    rs.initiate(rsc);
    

    路由配置

    • 路由配置文件
    logpath = /mongodb_shard01_mongos/log/mongodb.logs
    port = 31000
    configdb = dakj_mongodb/192.168.1.101:32000,192.168.1.102:32000,192.168.1.103:32000
    
    • 启动路由
    // 192.168.1.101
    sudo docker run -itd --name mongos01 -p 31000:31000 -v /mongodb_shard01_mongos:/mongodb_shard01_mongos mongo mongos --port=31000  --config /mongodb_shard01_mongos/mongos.conf
    
    // 192.168.1.102
    sudo docker run -itd --name mongos01 -p 31000:31000 -v /mongodb_shard01_mongos:/mongodb_shard01_mongos mongo mongos --port=31000  --config /mongodb_shard01_mongos/mongos.conf
    
    // 192.168.1.103
    sudo docker run -itd --name mongos01 -p 31000:31000 -v /mongodb_shard01_mongos:/mongodb_shard01_mongos mongo mongos --port=31000  --config /mongodb_shard01_mongos/mongos.conf
    

    分片+副本集配置

    • 分片配置文件(mongodb.conf)
    port = 27017
    shardsvr=true
    #fork = true
    #keyFile = /mongodb_conf/autokey
    replSet = mongodb_shard02
    logpath = /mongodb_shard_config/logs/dakj_mongodb_log.log
    logappend = true
    dbpath=/data/db
    bind_ip_all=true
    
    • 启动副本集
    sudo docker run -itd --name mongodb_shard01 -p 30010:27017 -v /mongodb_shard01:/data/db -v /mongodb_shard_config:/mongodb_shard_config mongo mongod -f /mongodb_shard_config/mongodb.conf
    
    sudo docker run -itd --name mongodb_shard02 -p 30011:27017 -v /mongodb_shard02:/data/db -v /mongodb_shard02_config:/mongodb_shard_config mongo mongod -f /mongodb_shard_config/mongodb.conf 
    
    sudo docker run -itd --name mongodb_shard03 -p 30012:27017 -v /mongodb_shard03:/data/db -v /mongodb_shard03_config:/mongodb_shard_config mongo mongod -f /mongodb_shard_config/mongodb.conf
    
    • 初始化副本集
    连接各副本,分别配置
    
    //shard01
    config = {"_id" : "mongodb_shard01","members" : [{"_id" : 0,"host" : "192.168.1.101:30010"},{"_id" : 1,"host" : "192.168.1.102:30010"},{"_id" : 2,"host" : "192.168.1.103:30010"}]}
    
    //shard02
    config = {"_id" : "mongodb_shard02","members" : [{"_id" : 0,"host" : "192.168.1.101:30011"},{"_id" : 1,"host" : "192.168.1.102:30011"},{"_id" : 2,"host" : "192.168.1.103:30011"}]}
    
    //shard03
    config = {"_id" : "mongodb_shard03","members" : [{"_id" : 0,"host" : "192.168.1.101:30012"},{"_id" : 1,"host" : "192.168.1.102:30012"},{"_id" : 2,"host" : "192.168.1.103:30012"}]}
    
    rs.initiate(config)
    
    • 连接路由 添加分片
    sh.addShard("mongodb_shard01/192.168.1.101:30010,192.168.1.102:30010,192.168.1.103:30010")
    sh.addShard("mongodb_shard02/192.168.1.101:30011,192.168.1.102:30011,192.168.1.103:30011")
    sh.addShard("mongodb_shard03/192.168.1.101:30012,192.168.1.102:30012,192.168.1.103:30012")
    

    配置数据库和集合启用及分片

    use dakj_yqxt
    db.yqxt_article.ensureIndex({'url_md5':1}, {'unique': true})
    
    
    db.category_article.ensureIndex({'url_md5':'hashed'})
    db.category_article.ensureIndex({'category_id':'hashed', 'ctime':-1})
    
    db.warn_article.ensureIndex({'url_md5':'hashed'})
    db.warn_article.ensureIndex({'category_id':'hashed', 'ctime':-1})
    
    
    sh.enableSharding('dakj_yqxt')
    sh.shardCollection('dakj_yqxt.yqxt_article', {'url_md5':'hashed'})
    sh.shardCollection('dakj_yqxt.category_article', {'url_md5':'hashed'})
    sh.shardCollection('dakj_yqxt.warn_article', {'url_md5':'hashed'})
    
    
  • 相关阅读:
    获取账号所有联系人
    获取用户的初始信息展示
    pip升级的错误
    二维码长轮询获取登陆并获取用户基本信息
    获取微信二维码
    WebChat理清流程
    python的requests模块
    python的单例模式和__new__方法
    matplotlib 基础知识汇总
    pandas数据分析案例:美国2012年总统候选人政治献金数据分析
  • 原文地址:https://www.cnblogs.com/abeen/p/15555952.html
Copyright © 2011-2022 走看看