• mogodb分片配置


    下图展示了在MongoDB中使用分片集群结构分布:

    上图中主要有如下所述三个主要组件:

    • Shard:

      用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个replica set承担,防止主机单点故障

    • Config Server:

      mongod实例,存储了整个 ClusterMetadata,其中包括 chunk信息。

    • Query Routers:

      前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

    1、启动mongodb

    mkdir -p /home/m17 /home/m18 /home/m20 /home/mlog
    #启动s1
    mongod --dbpath /home/m17 --logpath /home/mlog/m17.log --fork --port 2017 --smallfiles
    #启动s2
    mongod --dbpath /home/m18 --logpath /home/mlog/m18.log --fork --port 2018 --smallfiles
    #启动configsvr
    mongod --dbpath /home/m20 --logpath /home/mlog/m20.log --fork --port 2020 --configsvr
    #启动mogos
    mongos --logpath /home/mlog/m30.log --port 30000 --configdb 192.168.1.1:27020 --fork

    2、配置分片节点

    mongo --port 30000
    
    mongos>sh.addShard('192.168.1.1:27017');
    mongos>sh.addShard('192.168.1.1:27018');
    
    #查看
    mongos>sh.status();
    

    3、设定分片规则

    #为shop库进行分片
    mongos>sh.enableSharding('shop');
    #可查看
    mongos>sh.status();
    #goods表分配片键
    mongos>sh.shardCollection('shop.goods',{goods_id:1});
    #可查看
    mongos>sh.status();
    #查看chunk size
    mongos>use config
    mongos>db.settings.fihnd();
    #修改chunk size
    mongos>db.settings.save({_id:'chunksize',value:1});
    
    #缺点:会造成块的移动,下面介绍手动预先分片

    4、手动预先分片规则

    mongos>sh.shardCollection('shop.user',{userid:1});
    mongos>sh.status();
    #预先分40块,每1000条数据一块
    mongos>for(var i=1;i<=40;i++){ sh.splitAt('shop.user',{userid:i*1000});}
  • 相关阅读:
    初窥语义搜索
    爬取菜谱网站
    paramiko简介
    软件项目结构规范
    paramiko 远程执行多个命令
    python 中in 的 用法
    spring依赖(部分)
    ModelAndView的部分回顾
    SringMVC 国际化
    spring事物配置,声明式事务管理和基于@Transactional注解的使用
  • 原文地址:https://www.cnblogs.com/nr-zhang/p/10565199.html
Copyright © 2020-2023  润新知