愚公系列2022年05月 .NET架构班 060-分布式中间件 Mongodb复制集

网友投稿 547 2022-05-29

前言

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”)

【愚公系列】2022年05月 .NET架构班 060-分布式中间件 Mongodb复制集

查看节点状态

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分片

MongoDB

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PhpStorm中如何使用Xdebug工具,入门级操作方法
下一篇:【Hello,鲲鹏】第一期:什么是华为云鲲鹏?
相关文章