Объединение в пул соединений Mongo (изменение размера пула соединений)

#java #spring #mongodb #mongo-java #spring-mongo

#java #spring #mongodb #mongo-java #spring-mongo

Вопрос:

Как изменить размер пула соединений mongo?

Я видел, что по умолчанию оно равно 100. Есть ли способ изменить это значение?

Я не хочу делать это через spring, есть ли способ настроить его через MongoClient?

Есть опция, которую я вижу в mongoClientOptions, но я не вижу опций для установки пула подключений

Ответ №1:

Вы можете создать свой собственный экземпляр MongoClient, используя MongoClientOptions.Конструктор.

 MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
MongoClientOptions options = builder.connectionsPerHost(10).build();
MongoClient client = new MongoClient(listOfServers, options);
  

Комментарии:

1. итак, этот номер 10 является пулом соединений? которое по умолчанию равно 100? Также, если у меня будет, скажем, 3 хоста, у меня будет всего 30 подключений в вашем случае?

2. Вероятно, разработчик по умолчанию 100 считает, что это лучшая настройка по умолчанию для большинства людей — я не могу ответить почему. Вышеописанное установит 10 подключений (да, пул) на хост. Если у вас 3 хоста, это будет 10 на каждый хост и 30 в общей сложности.

Ответ №2:

В качестве другого варианта (и более удобного для меня), размер пула соединений может быть изменен с помощью MongoDB URI. Пример:

  MONGODB_URI (mongo):   mongodb://user:password@localhost:27017/users_db?ssl=trueamp;maxPoolSize=10amp;readPreference=primaryPreferredamp;replicaSet=Dev-shard-0amp;authSource=admin
  

Где maxPoolSize=10 параметр — максимальное количество подключений.
Существуют также некоторые дополнительные параметры для настройки пула подключений таким образом, подробности — см. в документации — https://docs.mongodb.com/manual/reference/connection-string /

Ответ №3:

Дополнительные параметры также могут быть установлены с помощью MongoClientURI :

 MongoClientOptions.Builder builder = new MongoClientOptions.Builder().connectionsPerHost(10));
MongoClientURI clientURI = new MongoClientURI(connectionURL, builder);
MongoClient mongoClient = new MongoClient(clientURI);