-
spring-data-mongodb 3.0以下,连接池配置可以使用配置类MongoClientOptions,
-
但是在3.0以上版本,删除了这个类
-
通过翻阅源码发现3.0版本创建MongoClient是通过MongoClients.create()方法,
-
进一步点进去看ConnectionString
-
所有的配置项,均是解析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:root@192.168.1.15:27017/game?authSource=admin&minpoolsize=2&maxpoolsize=20&maxidletimems=6000&waitqueuetimeoutms=120000&connecttimeoutms=30000&heartbeatfrequencyms=10000"
独立模式配置书写
无密码 mongodb://mongodb0.example.com:27017
有密码 mongodb://username:password@mongodb0.example.com:27017/?authSource=admin
副本集模式
- 对于副本集,请指定mongod 副本集配置中列出的实例的主机名。
- 对于副本集,包括该replicaSet 选项。
无密码 mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl
有密码 mongodb://username:password@mongodb0.example.com: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:passwor@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource = admin
如果用户名或密码包含 at 符号@、冒号:、斜杠/或百分号%字符,要使用编码