MongoDB副本集搭建和读写分离配置

MongoDB副本集(Replication Set)由一组mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点.客户端数据写入Primary节点。Secondary节点从Primary节点同步数据。以保持副本集内所有成员存储相同的数据集。Primary节点故障时会自动选举出一个新的Primary节点。
在实现高可用的同时,副本集实现了其他几个附加作用:
数据分发:将数据从一个区域复制到另一个区域,减少另一个区域的读延迟。
读写分离:不同类型的压力分别在不同节点上执行。
异地容灾:在数据中心故障时快速切换到异地。

windows环境搭建MongoDB副本集

1. 创建两个mongoDB目录

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2. 配置相同的副本集名称,不同的端口

在这里插入图片描述
在这里插入图片描述

#存储  
storage:
  #数据存储目录 windows这里用斜杠/,不能用反斜杠\
  dbPath: "D:/soft/mongodb-6.0.2-2/data"
#网络  
net:
  #绑定IP,如果此值是‘0.0.0.0’则绑定所有IP
  bindIp: localhost,127.0.0.1
  #监听端口,默认27017
  port: 27019
#副本集   
replication:
  #副本集名称
  replSetName: resGreat  

3. 启动两个服务

mongod -f mongod.conf

在这里插入图片描述
在这里插入图片描述

4. 使用mongosh工具连接主节点服务

这里选择27017作为主节点

mongosh.exe --port 27017

在这里插入图片描述

5. 初始化副本集

rs.initiate()

在这里插入图片描述

6. 将其余成员增加到副本集

rs.add('127.0.0.1:27019')

在这里插入图片描述

7. 其他相关命令

查看配置

rs.conf()

查看状态

rs.status()

8. ReadPreference读偏好

默认情况下,读写都是分发都Primary节点执行,我们希望进行读写分离来分摊压力,所以希望使用Secondary节点来进行读取,Primary只承担写的责任(实际上写只能分发到Primary节点,不可修改)。

MongoDB有5种ReadPreference模式:

primary: 主节点,默认模式,读操作只在主节点,如果主节点不可用,报错或者抛出异常。
primaryPreferred:首选主节点,大多情况下读操作在主节点,如果主节点不可用,如故障转移,读操作在从节点。
secondary:从节点,读操作只在从节点, 如果从节点不可用,报错或者抛出异常。
secondaryPreferred:首选从节点,大多情况下读操作在从节点,特殊情况(如单主节点架构)读操作在主节点。
nearest:最邻近节点,读操作在最邻近的成员,可能是主节点或者从节点。

9. Spring Boot 读写分离配置

Mongo的读写分离非常的简单,只需要在连接字符串中添加如下参数

spring:      
  data:
    mongodb:
      uri: mongodb://localhost:27017,localhost:27019/database_name?replicaSet=resGreat&readPreference=secondaryPreferred
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值