当前位置: 首页 > news >正文

mongodb部署Shard Cluster

一、创建集群认证文件

mkdir  ./data  ./confopenssl rand -base64 756 > ./conf/keyfilechmod   400  ./conf/keyfiledocker network create mongo-cluster

二、部署configsever副本集

#!/bin/bash
iname=mongodb:8.0.9
conf_name=mongo_conf_
replset_name=confrsecho "----------------- create configserver  start -------------------------"for i in 1 2
dodocker run -d --name ${conf_name}${i}   \--network mongo-cluster \-v ./data/conf-rs$i:/datadb \-v ./conf/keyfile:/data/configdb/keyfile \-p 270${i}9:27019 $iname  \mongod --configsvr --replSet $replset_name --port 27019  --keyFile /data/configdb/keyfile --bind_ip_all
donedocker exec -it mongo_conf_1 mongosh --port 27019 --eval "rs.initiate({_id: 'confrs',configsvr: true,members: [{_id: 0, host: 'mongo_conf_1:27019'},{_id: 1, host: 'mongo_conf_2:27019'}]
})"

三、部署shard副本集

#!/bin/bash
iname=mongodb:8.0.9
shard_name=mongo_shard_
replset_name=shardrsecho "----------------- create shard replSet  start -------------------------"
#部署分片
for i in 1 2
dodocker run -d --name ${shard_name}${i}   \--network mongo-cluster \-v ./data/shard-rs$i:/data/db \-v ./conf/keyfile:/data/configdb/keyfile \-p 270${i}8:27018 $iname  \mongod --shardsvr --replSet $replset_name$i --port 27018  --keyFile /data/configdb/keyfile  --bind_ip_all
donedocker exec -it mongo_shard_1 mongosh --port 27018 --eval "rs.initiate({_id: 'shardrs1',members: [{_id: 0, host: 'mongo_shard_1:27018'}]
})"docker exec -it mongo_shard_2 mongosh --port 27018 --eval "rs.initiate({_id: 'shardrs2',members: [{_id: 0, host: 'mongo_shard_2:27018'}]
})"

4、部署路由mongos

#!/bin/bash
iname=mongodb:8.0.9
conf_name=mongo_conf_
mongos_name=mongo_mongosecho "----------------- create mongos  start -------------------------"docker run \-d --name $mongos_name  \--network mongo-cluster \-v ./data/mongos-rs:/data/db \-v ./conf/keyfile:/data/configdb/keyfile \-p 27017:27017 \$iname  mongos --configdb confrs/${conf_name}1:27019,${conf_name}2:27019   --keyFile /data/configdb/keyfile  --bind_ip_all

        添加分片


docker exec -it mongo_mongos mongosh --port 27017
sh.addShard("shardrs1/mongo_shard_1:27018")
sh.addShard("shardrs2/mongo_shard_2:27018")#查看副本rs.status()#查看分片
sh.status()

五、创建用户

use admin
db.createUser({user: "admin",pwd: "123456",roles: [ { role: "root", db: "admin" } ]
})
 mongosh  --port  27017  -u admin  -p 123456# 启用分片数据库
sh.enableSharding("langchain_test_db")# 对集合分片(按字段哈希)
sh.shardCollection("langchain_test_db.langchain_test_collection", { "shardKey": "hashed" })

 

相关文章:

  • 【Spring Boot 整合 MongoDB 完整指南】
  • Icecream Video Editor:简单易用的视频编辑软件,轻松打造专业视频
  • 基于51单片机教室红外计数灯光控制—可蓝牙控制
  • npm 安装时 SSL 证书过期问题笔记
  • 2025最新Java基础八股文速记精简版(万字笔记)
  • 【Linux】系统指令与开发全栈(vim、ssh、gcc)
  • 项目中把webpack 打包改为vite 打包
  • c#将json字符串转换为对象数组
  • Electron使用WebAssembly实现CRC-8 ITU校验
  • Electron + Vue 实现系统消息通知与点击跳转页面
  • 如何实现从网页一键启动你的 Electron 桌面应用(zxjapp://)
  • 汽车零部件的EMI抗扰性测试
  • GStreamer (三)常⽤插件
  • word文档中如何在方框中打✔
  • 计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据
  • eMMC深度解析:嵌入式多媒体卡的硬件电路设计要点
  • 软考 系统架构设计师系列知识点之杂项集萃(63)
  • 大语言模型 13 - 从0开始训练GPT 0.25B参数量 MiniMind2 补充 训练开销 训练步骤 知识蒸馏 LoRA等
  • 核保核赔的集中管理方案
  • 三键标准、多键usb鼠标数据格式
  • 贵州茅台:支持工作餐不上酒的规定,请投资者相信茅台创新和自我调节能力
  • 南宁海关辟谣网传“查获600公斤稀土材料”:实为焊锡膏
  • 国家统计局:4月份各线城市商品住宅销售价格环比持平或略降
  • 摄影师|伊莎贝尔·穆尼奥斯:沿着身体进行文化溯源
  • 病愈出院、跳大神消灾也办酒,新华每日电讯:农村滥办酒席何时休
  • 巴菲特最新调仓:一季度大幅抛售银行股,再现保密仓位