【愚公系列】2022年05月 .NET架构班 060-分布式中间件 Mongodb复制集
【摘要】 前言 1.什么是复制集MongoDB复制是将数据同步到多个服务器的过程;复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性;复制集还允许您从硬件故障和服务中断中恢复数据。mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。mongodb各个节点常见的搭配方式为:一主一从、一主多从。主节点记录在其上的所...
前言
1.什么是复制集
MongoDB复制是将数据同步到多个服务器的过程;复制集提供了数据的冗余备份并提高了数据的可用性,通常可以保证数据的安全性;复制集还允许您从硬件故障和服务中断中恢复数据。
- mongodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
- mongodb各个节点常见的搭配方式为:一主一从、一主多从。
- 主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行。
一份数据复制多份。如图所示
2.复制集的作用
当客户端通过电商网站从MongoDB中查询数据的时候,如果MongoDB宕机,就会导致整个系统不可用。复制集就可以实现MongoDB高可用
3.MongoDB复制集集群
- primary:主节点,负责接受客户端请求
- secondary:从节点,负责从主节点复制数据
一、Mongodb复制集的搭建
1.MongoDB中创建3个配置文件
27018.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\ReplicaSet-data\data-27018
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\ReplicaSet-log\mongod-27018.log
# network interfaces
net:
port: 27018
bindIp: 127.0.0.1
#processManagement:
#security:
#operationProfiling:
replication:
replSetName: rs0
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
27019.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\ReplicaSet-data\data-27019
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\ReplicaSet-log\mongod-27019.log
# network interfaces
net:
port: 27019
bindIp: 127.0.0.1
#processManagement:
#security:
#operationProfiling:
replication:
replSetName: rs0
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
27020.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\ReplicaSet-data\data-27020
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\ReplicaSet-log\mongod-27020.log
# network interfaces
net:
port: 27020
bindIp: 127.0.0.1
#processManagement:
#security:
#operationProfiling:
replication:
replSetName: rs0
#sharding:
## Enterprise-Only Options:
#auditLog:
#snmp:
2.MongoDB中创建3个数据目录和日志目录
3.MongoDB多个实例启动
3.1 mongod-27018实例启动
3.2 mongod-27018实例启动
3.3 mongod-27018实例启动
4.MongoDB复制集角色分配
4.1 primary节点初始化
连接27018节点 mongo.exe –host 127.0.0.1 –port 27018
初始化主节点rs.initiate()
主节点状态查看rs.status()
4.2 primary节点添加从节点
主节点中添加27019节点
rs.add(“127.0.0.1:27019”)
主节点中添加27020节点
rs.add(“127.0.0.1:27020”)
查看节点状态
4.3 MongoDB复制集Compass连接
连接地址:mongodb://localhost:27018,localhost:27019,localhost:27020/?readPreference=primary&appname=MongoDB%20Compass&ssl=false
4.4 MongoDB复制集.NET Core连接
总结
MongoDB复制集缺陷
- 数据量过大,MongoDB所在的磁盘容量有限,无法存储海量数据
- 高并发的写,一个MongoDB主节点并发处理能力有限,无法解决高并发写
所以:需要使用MongoDB分片
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)