【发布时间】:2014-07-03 15:28:23
【问题描述】:
如何改变mongo连接池大小?
我已经看到它默认为 100。有没有办法改变这个值?
我不想通过 spring 来做,有没有办法通过 MongoClient 来配置它?
我看到了一个关于 mongoClientOptions 的选项,但我没有看到设置连接池的选项
【问题讨论】:
标签: java spring mongodb mongo-java spring-mongo
如何改变mongo连接池大小?
我已经看到它默认为 100。有没有办法改变这个值?
我不想通过 spring 来做,有没有办法通过 MongoClient 来配置它?
我看到了一个关于 mongoClientOptions 的选项,但我没有看到设置连接池的选项
【问题讨论】:
标签: java spring mongodb mongo-java spring-mongo
您可以使用 MongoClientOptions.Builder 构建自己的 MongoClient 实例。
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
MongoClientOptions options = builder.connectionsPerHost(10).build();
MongoClient client = new MongoClient(listOfServers, options);
【讨论】:
作为另一种选择(对我来说更方便),可以通过 MongoDb URI 更改连接池大小。 示例:
MONGODB_URI (mongo): mongodb://user:password@localhost:27017/users_db?ssl=true&maxPoolSize=10&readPreference=primaryPreferred&replicaSet=Dev-shard-0&authSource=admin
maxPoolSize=10 参数是最大连接数。
还有一些额外的参数用于配置连接池,详情请参考文档-https://docs.mongodb.com/manual/reference/connection-string/
【讨论】:
也可以使用 MongoClientURI 设置额外的选项:
MongoClientOptions.Builder builder = new MongoClientOptions.Builder().connectionsPerHost(10));
MongoClientURI clientURI = new MongoClientURI(connectionURL, builder);
MongoClient mongoClient = new MongoClient(clientURI);
【讨论】: