当前位置: 首页 > news >正文

springboot-mongodb-连接配置

文章目录

  • 配置Maven依赖
  • URL格式
  • 单节点配置示例
  • 副本集(含连接池配置)

配置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: ariecmsauthentication-database: adminauto-index-creation: truefield-naming-strategy: org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategyuri: "mongodb://root:xxx@xxx1.com:3717,xxx2.com:3717/admin?replicaSet=mgset-xxx&readPreference=secondaryPreferred"connection-pool:minSize: 20maxSize: 600maxWaitTime: 10000maxConnectionIdleTime: 180000maxConnectionLifeTime: 600000maxConnecting: 600

通过正确的Connection String来连接MongoDB复制集时,客户端会自动检测复制集的主备关系,当主备关系发生变化时,自动将写切换到新的主上,以保证服务的高可用。

如何实现读写分离?
在options里添加readPreference=secondaryPreferred即可实现,读请求优先到Secondary节点,从而实现读写分离的功能,更多读选项参考Read preferences

如何限制连接数?
在options里添加maxPoolSize=xx即可将客户端连接池限制在xx以内。

如何保证数据写入到大多数节点后才返回?
在options里添加w= majority即可保证写请求成功写入大多数节点才向客户端确认,

http://www.lryc.cn/news/251183.html

相关文章:

  • 基于单片机的多功能视力保护器(论文+源码)
  • 如何保护 API 安全
  • 工业机器视觉megauging(向光有光)使用说明书(十五,轻量级的visionpro)
  • Linux e2fsck命令教程:如何检查和修复文件系统(附案例详解和注意事项)
  • TypeScript 的安装与使用
  • Git版本管理配置说明 - Visual Studio
  • Rust语言项目实战(四) - 界面绘制与渲染
  • 动态规划学习——回文串
  • 优化你的计算机性能:如何根据 CPU 占用率决定硬件升级
  • 探索低代码之路——JNPF
  • Day01 嵌入式 -----流水灯
  • Redis集群详解
  • 【随笔】个人面试纪录
  • Vue3的reactive、ref、toRef、toRefs用法以及区别
  • 微信小程序:input双向绑定
  • RT-Thread ADC_DMA
  • 生成带依赖Jar 包的两种常用方式:IDEA打包工具:Artifacts 和 maven-shade-plugin
  • idea 插件开发日志绑定问题
  • Elasticsearch(ES)概述
  • 网络入门---网络编程初步认识和实践
  • Linux系统安装Docker-根据官方教程教程(以Ubuntu为例)
  • 2023-12-03 LeetCode每日一题(可获得的最大点数)
  • 【唐山海德教育】安全员b证的考试科目
  • 吉他初学者学习网站搭建系列(4)——如何查询和弦图
  • 九章量子计算机:探索量子世界的革命性工具
  • 在 Linux 上修改 Oracle 控制文件、日志文件和数据文件的目录的脚本
  • JavaScript 延迟加载的艺术:按需加载的最佳实践
  • HTML之实体和标签
  • 【小布_ORACLE笔记】Part11-1--RMAN Backups
  • 卷积神经网络-3D医疗影像识别