2

How to change the mongo connection pool size?

I have seen it is 100 by default. Is there a way to change this value?

I dont want to do it via spring, is there a way to configure it via MongoClient?

There is an option i see about mongoClientOptions but i dont see options to set connection pool

neoeahit
  • 1,689
  • 2
  • 21
  • 35

3 Answers3

4

You can build your own MongoClient instance using the MongoClientOptions.Builder.

MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
MongoClientOptions options = builder.connectionsPerHost(10).build();
MongoClient client = new MongoClient(listOfServers, options);
evanwong
  • 5,054
  • 3
  • 31
  • 44
  • so this no 10 is a connection pool? which is by default 100? Also if I have say 3 hosts i will have 30 connections in total in your case? – neoeahit Jul 03 '14 at 15:36
  • Default 100 is probably the implementer think that's the best default setting for most people - I can't answer why. The above will set 10 connections (yes, pool) per host. If you have 3 hosts, it will be 10 per host and 30 in total. – evanwong Jul 03 '14 at 15:40
2

As another option(and more convenient for me), connection pool size can be changed via MongoDb URI. Sample:

 MONGODB_URI (mongo):   mongodb://user:password@localhost:27017/users_db?ssl=true&maxPoolSize=10&readPreference=primaryPreferred&replicaSet=Dev-shard-0&authSource=admin

Where maxPoolSize=10 param is max amount of connections. There are also some additional parameters for configuring connection pool in such way, for details - refer to the documentation - https://docs.mongodb.com/manual/reference/connection-string/

Oleksandr Yefymov
  • 6,081
  • 2
  • 22
  • 32
0

Extra options can also be set using MongoClientURI :

MongoClientOptions.Builder builder = new MongoClientOptions.Builder().connectionsPerHost(10));
MongoClientURI clientURI = new MongoClientURI(connectionURL, builder);
MongoClient mongoClient = new MongoClient(clientURI);
Bit-Man
  • 516
  • 4
  • 17