我想更改java mongodb驱动程序提供的连接池的默认大小,该大小根据mongo docs为100。

下面是我用来自定义连接池大小(称为this question)的mongo客户端bean。我将min和max connectionPerHost属性都设置为1,并运行了10个并行工作线程,这些线程与数据库交互以确保应用了我的更改。

@Bean
public Mongo mongo() throws Exception {
    MongoClientOptions.Builder clientOptions = new MongoClientOptions.Builder();
    clientOptions.minConnectionsPerHost(1);
    clientOptions.connectionsPerHost(1);
    MongoClient mongoClient = new MongoClient(new MongoClientURI(env.getProperty("mongodbhost"), clientOptions));
    return mongoClient;
}

然后,我计算了每个工作线程的开始和结束时间点。这样我就可以确定线程可以并行工作,并且这些配置不会改变我的连接池大小。
有人可以帮我解决这个问题吗?任何帮助将不胜感激!

最佳答案

您可以通过uri配置连接参数。

spring.data.mongodb.uri = mongodb://本地主机:27017/?connectTimeoutMS = 300000&minPoolSize = 0&maxPoolSize = 10&maxIdleTimeMS = 900000

有关其他参数,请参见以下文档。

https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options

10-05 21:08