User-Profile-Image
hankin
  • 5
  • centos7
  • docker
  • mysql
  • PostgreSQL
  • git/gitlab
  • ELK
  • python
    • python-Tornado
    • python-django
  • redis
  • nginx
  • kvm
  • proxmox
  • mongo
  • kubernetes
  • prometheus
  • GlusterFs
  • nfs
  • freeswitch
  • httpd
  • shell脚本
  • linux
  • fastdfs
  • nextcloud
  • openssl
  • openvpn
  • rabbitmq
  • sqlite
  • svn
  • java
  • ubuntu
  • vue2
  • wordpress
  • php
  • IOT物联网
  • 项目
  • 故障处理
  • 树莓派
  • 博客存档
  • 未分类
  • 杂项
  • #1742(无标题)
  • 新视野
  • 分类
    • 项目
    • 树莓派
    • 杂项
    • 未分类
    • 新视野
    • 故障处理
    • 博客存档
    • 交换机
    • wordpress
    • vue2
    • ubuntu
    • svn
    • sqlite
    • shell脚本
    • redis
    • rabbitmq
    • python-django
    • python
    • proxmox
    • prometheus
    • PostgreSQL
    • php
    • openvpn
    • openssl
    • nginx
    • nfs
    • nextcloud
    • mysql
    • mongo
    • linux
    • kvm
    • kubernetes
    • java
    • IOT物联网
    • httpd
    • GlusterFs
    • git/gitlab
    • freeswitch
    • fastdfs
    • ELK
    • docker
    • centos7
  • 页面
    • #1742(无标题)
  • 友链
      请到[后台->主题设置->友情链接]中设置。
Help?

Please contact us on our email for need any support

Support
    首页   ›   mongo   ›   正文
mongo

docker安装mongo分片集群

2022-11-02 15:08:49
1208  0 0

mongo分片集群docker安装,未梳理成文档,无参考意义

shard————————————————————————————————————————————————————

创建三个shard容器
    docker run --name shard_server -itd --network=host mongo:6.0.1 --shardsvr --replSet "my_shard_s1"
    docker run --name shard_server -itd --network=host mongo:6.0.1 --shardsvr --replSet "my_shard_s2"
    docker run --name shard_server -itd --network=host mongo:6.0.1 --shardsvr --replSet "my_shard_s3"
分别初始化
    echo """rs.initiate({_id : \"$a\",members: [{ _id : 0, host : \"$ip\" }]});""" |mongosh --port 27018

    mongosh --host 192.168.2.196 --port 27018
    rs.initiate({_id : "my_shard_s1",members: [{ _id : 0, host : "192.168.2.196:27018" }]});

    mongosh --host 192.168.2.197--port 27018
    rs.initiate({_id : "my_shard_s2",members: [{ _id : 0, host : "192.168.2.197:27018" }]});

    mongosh --host 192.168.2.198 --port 27018
    rs.initiate({_id : "my_shard_s3",members: [{ _id : 0, host : "192.168.2.198:27018" }]});

使用ip或者dns名称都可以

cong———————————————————————————————————————————

创建三个conf容器
    docker run -d --name configsvr1   --network=host mongo:6.0.1 --configsvr --replSet "rs_configsvr" 
    -v /data/mongodb/configsvr2:/data/configdb
连接任意conf节点
    mongosh --host 192.168.2.197 --port 27019
初始化conf集群
    rs.initiate({_id: "rs_configsvr",configsvr: true,members: [{ _id : 0, host : "192.168.2.196:27019" },{ _id : 1, host : "192.168.2.197:27019" },{ _id : 2, host : "192.168.2.198:27019" }]});
rs.status();

mongos———————————————————————————————————————————————

创建mongos容器
    docker run --name mongos0  -d --network=host  mongo:6.0.1 mongos --configdb rs_configsvr/192.168.2.196:27019,192.168.2.197:27019,192.168.2.198:27019 --bind_ip_all
连接mongos
    mongosh --host 192.168.2.196 --port 27017
添加分片,节点
    sh.addShard("my_shard_s1/192.168.2.196:27018")
    sh.addShard("my_shard_s2/192.168.2.197:27018")
    sh.addShard("my_shard_s3/192.168.2.198:27018")
对h1库开启分片功能
    use admin
    db.runCommand({enablesharding:"h1"});

    集群节点情况
    db.stats()

    哈希碎片键分片,所以要建立hash索引;此处是在集合s1的 ha字段上建立该索引
    db.s1.ensureIndex({ha:"hashed"})

    对集合进行分片,对sms集合进行分片,分片键是s1的ha字段。
    sh.shardCollection("h1.s1", {ha:"hashed"})

    写入数据测试分片,(有问题不能测试出哈希分片情况)
    for(var i=1;i<=100000;i++) {db.s1.insertOne({"ha":"fcwehfuwegrf2u3f","n":"1212"})};

    查阅数据分布情况:
    db.s1.stats();

    查看分片情况(节点)
    use admin
    db.runCommand( { listshards : 1 } );

    其他
    docker stop shard_server && docker rm shard_server &&docker stop configsvr && docker rm configsvr
    docker stop mongos0 && docker rm mongos0
评论 (0)

点击这里取消回复。

欢迎您 游客  

Copyright © 2025 网站备案号 : 蜀ICP备2022017747号
smarty_hankin 主题. Designed by hankin
主页
页面
  • #1742(无标题)
博主
tang.show
tang.show 管理员
linux、centos、docker 、k8s、mysql等技术相关的总结文档
213 文章 2 评论 201659 浏览
测试
测试