spring-boot从2.1.x升级到2.3.x 整合spring-boot-starter-data-mongodb连接池配置问题

  • spring-data-mongodb 3.0以下,连接池配置可以使用配置类MongoClientOptions,

  • 但是在3.0以上版本,删除了这个类

  • 通过翻阅源码发现3.0版本创建MongoClient是通过MongoClients.create()方法,
    spring-boot从2.1.x升级到2.3.x 整合spring-boot-starter-data-mongodb连接池配置问题_第1张图片

  • 进一步点进去看ConnectionString
    spring-boot从2.1.x升级到2.3.x 整合spring-boot-starter-data-mongodb连接池配置问题_第2张图片

  • 所有的配置项,均是解析connectionString这个字段,也就是application.yml中配置的spring.data.mongo.uri这个参数

  • 查看官网() [https://www.mongodb.com/docs/v4.2/reference/connection-string/]

  • 连接配置格式为mongodb://[username:password@]host1[:port1][,…hostN[:portN]][/[defaultauthdb][?options]]

  • 即: mongodb://用户名:密码@host:port,host:prot…/数据库名?authSource=admin…

贴上自己的一条配置

spring:
  data:
    mongodb:
    # mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
      uri: "mongodb://root:[email protected]:27017/game?authSource=admin&minpoolsize=2&maxpoolsize=20&maxidletimems=6000&waitqueuetimeoutms=120000&connecttimeoutms=30000&heartbeatfrequencyms=10000"

独立模式配置书写

无密码 mongodb://mongodb0.example.com:27017
有密码 mongodb://username:[email protected]:27017/?authSource=admin

副本集模式

  • 对于副本集,请指定mongod 副本集配置中列出的实例的主机名。
  • 对于副本集,包括该replicaSet 选项。
无密码 mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl
有密码 mongodb://username:[email protected]:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl

分片集群模式

无密码 mongodb://mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017
有密码 mongodb://username:[email protected]:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource = admin

如果用户名或密码包含 at 符号@、冒号:、斜杠/或百分号%字符,要使用编码

贴上官网的字段解释

spring-boot从2.1.x升级到2.3.x 整合spring-boot-starter-data-mongodb连接池配置问题_第3张图片

连接池相关配置

spring-boot从2.1.x升级到2.3.x 整合spring-boot-starter-data-mongodb连接池配置问题_第4张图片

你可能感兴趣的:(spring,java,spring,mongodb)