配置Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
URL格式
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
mongodb:// 前缀,代表这是一个Connection String
username:password@ 如果启用了鉴权,需要指定用户密码
hostX:portX 复制集成员的ip:port信息,多个成员以逗号分割
/database 鉴权时,用户帐号所属的数据库
?options 指定额外的连接选项
注意:
连接串中的账号密码包含特殊字符!@#$%^&*()_+= 您需要在连接串中对特殊字符进行转义处理,转义规则如下:
! : %21
@ : %40
# : %23
$ : %24
% : %25
^ : %5e
& : %26
* : %2a
( : %28
) : %29
_ : %5f
+ : %2b
= : %3d
单节点配置示例
在 Spring Boot 中,你可以使用 YAML 格式的配置文件来配置 MongoDB 连接。下面是一个示例 YAML 配置文件,展示了如何配置 Spring Boot Starter Data MongoDB:
spring:
data:
mongodb:
host: localhost # MongoDB 主机地址
port: 27017 # MongoDB 端口号
database: myDatabase # 要连接的数据库名称
username: myUsername # MongoDB 用户名
password: myPassword # MongoDB 密码
authentication-database: admin # 认证数据库
auto-index-creation: true # 是否自动创建索引
field-naming-strategy: org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy # 字段命名策略
副本集(含连接池配置)
在这个示例中,spring.data.mongodb
下的属性配置了 MongoDB 的连接信息和一些其他选项。你可以根据实际的情况进行调整和配置。
除了上述示例中展示的属性外,你还可以配置其他详细的连接池信息,例如连接池大小、连接超时等。以下是一些常见的连接池配置属性:
spring:
data:
mongodb:
database: ariecms
authentication-database: admin
auto-index-creation: true
field-naming-strategy: org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy
uri: "mongodb://root:xxx@xxx1.com:3717,xxx2.com:3717/admin?replicaSet=mgset-xxx&readPreference=secondaryPreferred"
connection-pool:
minSize: 20
maxSize: 600
maxWaitTime: 10000
maxConnectionIdleTime: 180000
maxConnectionLifeTime: 600000
maxConnecting: 600
通过正确的Connection String来连接MongoDB复制集时,客户端会自动检测复制集的主备关系,当主备关系发生变化时,自动将写切换到新的主上,以保证服务的高可用。
如何实现读写分离?
在options里添加readPreference=secondaryPreferred即可实现,读请求优先到Secondary节点,从而实现读写分离的功能,更多读选项参考Read preferences
如何限制连接数?
在options里添加maxPoolSize=xx即可将客户端连接池限制在xx以内。
如何保证数据写入到大多数节点后才返回?
在options里添加w= majority即可保证写请求成功写入大多数节点才向客户端确认,
原文地址:https://blog.csdn.net/qq_16038125/article/details/134468491
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_49380.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!