springboot-mongodb-连接配置

配置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即可保证写请求成功写入大多数节点才向客户端确认,

相关推荐

  1. springboot-mongodb-连接配置

    2023-12-06 14:04:02       31 阅读
  2. Springboot_Tomcat数据库连接配置

    2023-12-06 14:04:02       39 阅读
  3. Springboot配置websocket,https使用 WebSocket 连接

    2023-12-06 14:04:02       12 阅读
  4. SpringBoot连接mysql数据库相关配置(druid连接池)

    2023-12-06 14:04:02       41 阅读
  5. MongoDB集成springboot

    2023-12-06 14:04:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 14:04:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 14:04:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 14:04:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 14:04:02       20 阅读

热门阅读

  1. 解决 nginx 504 Gateway Time-out报错问题

    2023-12-06 14:04:02       42 阅读
  2. Kafka的ACK应答级别

    2023-12-06 14:04:02       39 阅读
  3. C#后台发送Get和Post请求的几种方法总结

    2023-12-06 14:04:02       36 阅读
  4. idea 插件开发日志绑定问题

    2023-12-06 14:04:02       36 阅读
  5. 19、什么是 Resnet50 神经网络

    2023-12-06 14:04:02       39 阅读
  6. C语言速通笔记(41-62)

    2023-12-06 14:04:02       29 阅读
  7. c++ day 6

    c++ day 6

    2023-12-06 14:04:02      35 阅读