SpringBoot中使用Mongodb关于未使用从节点全部使用主节点的注意事项及解决方案

本文介绍在SpringBoot中如何配置MongoDB实现读写分离,减轻主节点压力。通过设置URI参数,使读操作从备份节点执行,提高系统整体性能。

在Springboot使用mongodb的过程中,mongodb默认是使用的读操作都是由主节点处理模式,相关阅读:https://blog.youkuaiyun.com/leining_chris/article/details/47312645

https://my.oschina.net/u/2366460/blog/871707

https://mongodb.github.io/mongo-java-driver/4.1/driver/tutorials/perform-read-operations/

但是如果读写压力全部在主节点的话,会给主节点造成压力。所以配置的时候需要考虑读从备份节点读取

配置方式如下:

spring:
    data:
         mongodb:
         uri: mongodb://${mongo.username}:${mongo.password}@${mongodb.address}${mongodb.options:}
         database: database
         authentication-database: admin

Spring boot 中配置使用mongodb的uri的方式来拆解参数进行配置的,具体可以看mongo的源码,com.mongodb.ConnectionString

在这个类中实现了对 uri的拆解逻辑,区分出host,username,password,以及translateOptions,关于读偏好,在createReadPreference这个方法中获取偏好设置。

 

关于readPreference这里的值的已经做了关于大小写的兼容,在com.mongodb.ReadPreference类中有处理,所以可以查看这个类中valueOf(String) 来了解关于大小写兼容的处理逻辑

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值