【愚公系列】2022年05月 .NET架构班 061-分布式中间件 Mongodb分片

举报
愚公搬代码 发表于 2022/05/08 23:21:01 2022/05/08
【摘要】 前言mongodb分片就是将大型集合分割到不同的服务器上,它可以自动且均衡的分配数据。它一般是针对特别大的需求,比如一个集合需要非常的大,几百个G。分片到10个服务器之后,每个服务器维护几十个G的数据。如果不是集合非常的大,而是库非常的多,可以不使用分片,可以向mysql一样,把不同的库指定给不同的服务器就可以。 一、Mongodb分片架构说明架构说明2套shard分片复制集集群。作用:分...

前言

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使用

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。