【愚公系列】2022年05月 .NET架构班 061-分布式中间件 Mongodb分片
前言
mongodb分片就是将大型集合分割到不同的服务器上,它可以自动且均衡的分配数据。它一般是针对特别大的需求,比如一个集合需要非常的大,几百个G。分片到10个服务器之后,每个服务器维护几十个G的数据。如果不是集合非常的大,而是库非常的多,可以不使用分片,可以向mysql一样,把不同的库指定给不同的服务器就可以。
一、Mongodb分片架构说明
架构说明
- 2套shard分片复制集集群。作用:分片存储数据。6个实例地址
- Config Server配置中心。作用:存储分片地址。3个实例地址
- Routers 路由。作用:连接客户端,实现数据如何分片。2个实例地址
- 总共需要11实例地址。
二、Mongodb分片部署
1.配置文件
先在bin目录创建文件夹
设置配置文件
- 分片一:21、22、23
- 分片二:31、32、33
配置文件如下:
mongod-27021.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\work\net\mongodb\MongoDB-5.0.6\shards-data\shard-27021
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\mongod-27021.log
# network interfaces
net:
port: 27021
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
replication:
replSetName: sharding1
sharding:
# 分片集群名称。统一管理的
clusterRole: shardsvr
## Enterprise-Only Options:
#auditLog:
#snmp:
mongod-27022.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\work\net\mongodb\MongoDB-5.0.6\shards-data\shard-27022
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\mongod-27022.log
# network interfaces
net:
port: 27022
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
replication:
replSetName: sharding1
sharding:
# 分片集群中当前实例的角色(configsvr:配置中心实例,shardsvr:分片实例)
clusterRole: shardsvr
## Enterprise-Only Options:
#auditLog:
#snmp:
mongod-27023.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\work\net\mongodb\MongoDB-5.0.6\shards-data\shard-27023
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\mongod-27023.log
# network interfaces
net:
port: 27023
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
replication:
replSetName: sharding1
sharding:
# 分片集群中当前实例的角色(configsvr:配置中心实例,shardsvr:分片实例)
clusterRole: shardsvr
## Enterprise-Only Options:
#auditLog:
#snmp:
2.数据目录
在MongoDB 分片1中创建3个数据目录
3.日志目录
在MongoDB中创建日志目录
4.启动实例
mongod-27021实例启动
mongod-27022实例启动
mongod-27023实例启动
5.角色分配
1、primary节点初始化
连接27018节点 mongo.exe –host 127.0.0.1 –port 27021
初始化主节点rs.initiate()
主节点状态查看rs.status()
主节点中添加27022节点: rs.add(“127.0.0.1:27022”)
主节点中添加27023节点: rs.add(“127.0.0.1:27023”)
查看节点状态
分片二配置也是同理:配置完6个节点后进行如下操作
连接地址:mongodb://localhost:27021,localhost:27022,localhost:27023/?readPreference=primary&appname=MongoDB%20Compass&ssl=false
6.MongoDB Config Server
6.1 配置文件
在MongoDB shard中创建Config Server
在MongoDB中创建3个配置文件
在mongod-27010.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\work\net\mongodb\MongoDB-5.0.6\shards-data\ConfigServer\configserver-27010
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\ConfigServer\mongod-27010.log
# network interfaces
net:
port: 27010
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
replication:
#集群名称,如果不是同一个集群内的机器,请不要配置重复
replSetName: confset
sharding:
# 分片集群中当前实例的角色(configsvr:配置中心实例,shardsvr:分片实例)
clusterRole: configsvr
## Enterprise-Only Options:
#auditLog:
#snmp:
在mongod-27011.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\work\net\mongodb\MongoDB-5.0.6\shards-data\ConfigServer\configserver-27011
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\ConfigServer\mongod-27011.log
# network interfaces
net:
port: 27011
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
replication:
#集群名称,如果不是同一个集群内的机器,请不要配置重复
replSetName: confset
sharding:
# 分片集群中当前实例的角色(configsvr:配置中心实例,shardsvr:分片实例)
clusterRole: configsvr
## Enterprise-Only Options:
#auditLog:
#snmp:
在mongod-27012.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: D:\work\net\mongodb\MongoDB-5.0.6\shards-data\ConfigServer\configserver-27012
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\ConfigServer\mongod-27012.log
# network interfaces
net:
port: 27012
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
replication:
#集群名称,如果不是同一个集群内的机器,请不要配置重复
replSetName: confset
sharding:
# 分片集群中当前实例的角色(configsvr:配置中心实例,shardsvr:分片实例)
clusterRole: configsvr
## Enterprise-Only Options:
#auditLog:
#snmp:
6.2 数据目录
6.2 日志目录
6.3 实例启动
MongoDB Config Server多实例启动
mongod-27010实例启动
mongod-27011实例启动
mongod-27012实例启动
6.4 角色分配
primary节点初始化
连接27018节点 mongo.exe –host 127.0.0.1 –port 27031
初始化主节点rs.initiate()
主节点状态查看rs.status()
主节点中添加27011节点:rs.add(“127.0.0.1:27011”)
主节点中添加27012节点:rs.add(“127.0.0.1:27012”)
查看节点状态
连接地址:mongodb://localhost:27010,localhost:27011,localhost:27012/?readPreference=primary&appname=MongoDB%20Compass&ssl=false
7. MongoDB Routers
7.1 配置文件
在MongoDB shard中创建 Routers
在MongoDB中创建2个配置文件
在mongod-27000.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
#storage:
# dbPath: c:\mongoDB\shard\config
#journal:
# enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\Router\mongod-27000.log
# network interfaces
net:
port: 27000
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
#replication:
sharding:
# 配置中心地址,你有几台就配置几台
configDB: confset/127.0.0.1:27010,127.0.0.1:27011,127.0.0.1:27012
## Enterprise-Only Options:
#auditLog:
#snmp:
在mongod-27100.cfg文件中添加内容
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
#storage:
# dbPath: c:\mongoDB\shard\config
#journal:
# enabled: true
# engine:
# mmapv1:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: D:\work\net\mongodb\MongoDB-5.0.6\shards-log\Router\mongod-27100.log
# network interfaces
net:
port: 27100
bindIp: 127.0.0.1
#processManagement:
# mongodb使用的时区
#timeZoneInfo: /usr/share/zoneinfo
# 是否以后台驻留进程运行(true:是,false:否)
#fork: true
#security:
#operationProfiling:
#replication:
sharding:
# 配置中心地址,你有几台就配置几台
configDB: confset/127.0.0.1:27010,127.0.0.1:27011,127.0.0.1:27012
## Enterprise-Only Options:
#auditLog:
#snmp:
7.2 数据目录
在MongoDB Routers中创建1个数据目录
7.3 实例启动
mongod-27000实例启动
mongod-27100实例启动
连接地址:mongodb://localhost:27000,localhost:27100/?readPreference=primary&appname=MongoDB%20Compass&ssl=false
三、.NET Core使用
- 点赞
- 收藏
- 关注作者
评论(0)