MongoDB-分片集群搭建

分片集群搭建

搭建配置服务器复制集:

  • 早期版本的配置服务器只要一台即可
  • 最新版本 MongoDB 要求配置服务器必须是一个复制集

搭建分片服务器复制集:

  • 用于保存数据的多台电脑

搭建路由服务器:

  • 用于建立配置服务器和分片服务器之间的关系

搭建配置服务器集群

编写配置文件

注意这里是下载了一台全新的 MongoDB 再次进行的搭建的,这里不介绍全新的去哪里下载前面有,然后更改配置文件内容如下:

# 数据保存到哪
storage:
  dbPath: D:\Web\MongoDB4.X\MongoDBSharding\mongodb-config-27018\data
  journal:
    enabled: true

# 日志保存到哪
systemLog:
  destination: file
  logAppend: true
  path: D:\Web\MongoDB4.X\MongoDBSharding\mongodb-config-27018\log

# 绑定的IP和端口号
net:
  port: 27018
  bindIp: 127.0.0.1

# 复制集名称
replication:
  replSetName: 'it6666'

# 复制集的作用
sharding:
  clusterRole: configsvr

?> 这里是一个集群的,所以关于其它两台自己分别去更改端口号进行搭建

注册 MongoDB 服务

管理员权限运行终端, 执行如下指令:

mongod --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-config-27018\config\mongo.config --serviceName "MongoDB27018" --serviceDisplayName "MongoDB27018"  --install
mongod --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-config-27019\config\mongo.config --serviceName "MongoDB27019" --serviceDisplayName "MongoDB27019"  --install
mongod --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-config-27020\config\mongo.config --serviceName "MongoDB27020" --serviceDisplayName "MongoDB27020"  --install

在任务管理器中开启任务:

image-20221030110906075

测试服务可用性

mongo --host 127.0.0.1 --port 27018
mongo --host 127.0.0.1 --port 27019
mongo --host 127.0.0.1 --port 27020

添加复制集

rs.initiate({
_id: 'it6666',
configsvr: true,
members: [
        {_id: 0, host: '127.0.0.1: 27018'
        },
        {_id: 1, host: '127.0.0.1: 27019'
        },
        {_id: 2, host: '127.0.0.1: 27020'
        }
    ]
})

搭建分片服务器集群

编写配置文件:

# 数据保存到哪
storage:
  dbPath: D:\Web\MongoDB4.X\MongoDBSharding\mongodb-shard-27023\data
  journal:
    enabled: true

# 日志保存到哪
systemLog:
  destination: file
  logAppend: true
  path: D:\Web\MongoDB4.X\MongoDBSharding\mongodb-shard-27023\log\mongod.log
  
# 绑定的IP和端口号
net:
  port: 27023
  bindIp: 127.0.0.1
  
# 复制集名称
replication:
  replSetName: 'BNTang_It6666'
  
# 复制集的作用
sharding:
    clusterRole: shardsvr

?> 这里是一个集群的,所以关于其它两台自己分别去更改端口号进行搭建

注册 MongoDB 服务

管理员权限运行终端, 执行如下指令:

mongod --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-shard-27021\config\mongo.config --serviceName "MongoDB27021" --serviceDisplayName "MongoDB27021"  --install
mongod --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-shard-27022\config\mongo.config --serviceName "MongoDB27022" --serviceDisplayName "MongoDB27022"  --install
mongod --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-shard-27023\config\mongo.config --serviceName "MongoDB27023" --serviceDisplayName "MongoDB27023"  --install

在任务管理器中开启任务:

image-20221102224857077

测试服务可用性

mongo --host 127.0.0.1 --port 27021
mongo --host 127.0.0.1 --port 27022
mongo --host 127.0.0.1 --port 27023

添加复制集

rs.initiate({
  _id: 'BNTang_It6666',
  members: [
    {_id: 0, host: '127.0.0.1:27021'},
    {_id: 1, host: '127.0.0.1:27022'},
    {_id: 2, host: '127.0.0.1:27023'}]
})

搭建路由服务器

编写配置文件

# 日志保存到哪
systemLog:
  destination: file
  logAppend: true
  path: D:\Web\MongoDB4.X\MongoDBSharding\mongodb-router-27024\log\mongod.log

# 绑定的IP和端口号
net:
  port: 27024
  bindIp: 127.0.0.1
  
# 配置服务器地址
sharding:
  configDB: it6666/127.0.0.1:27018,127.0.0.1:27019,127.0.0.1:27020

注册 MongoDB 服务

管理员权限运行终端, 执行如下指令:

mongos --config D:\Web\MongoDB4.X\MongoDBSharding\mongodb-router-27024\config\mongo.config --serviceName "MongoDB27024" --serviceDisplayName "MongoDB27024"  --install

在任务管理器中开启任务:

image-20221102234425262

测试服务可用性

mongo --host 127.0.0.1 --port 27024

添加分片服务器

sh.addShard( "BNTang_It6666/127.0.0.1:27021")
sh.addShard( "BNTang_It6666/127.0.0.1:27022")
sh.addShard( "BNTang_It6666/127.0.0.1:27023")

给指定数据库开启分片

sh.enableSharding("demo")

指定分片片键

sh.shardCollection("demo.user",{'age':1})
sh.shardCollection("demo.user",{'name':hashed})
posted @   BNTang  阅读(273)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示