Пн go Клиент
com.mongodb.client.MongoClient
интерфейс :
Клиентское представление кластера MongoDB. Экземпляры могут представлять собой автономный экземпляр MongoDB, набор реплик или сегментированный кластер. Экземпляр этого класса отвечает за поддержание современного состояния кластера и, возможно, связанных с этим ресурсов кэширования, включая фоновые потоки для мониторинга и пулы соединений.
MongoClient
объект используется для получения доступа к базе данных с использованием метода getDatebase()
и работы с коллекциями и документами в ней.
Из документации :
Экземпляр MongoClient представляет пул соединений с базой данных; вам понадобится только один экземпляр класса MongoClient даже с несколькими потоками.
ВАЖНО Как правило, вы создаете только один экземпляр MongoClient для данного развертывания MongoDB (например, автономный, набор реплик или сегментированный кластер) и используете его в своем применение. Тем не менее, если вы создаете несколько экземпляров:
Все ограничения использования ресурсов (например, максимальное количество соединений и т. Д. c.) Применяются к экземпляру MongoClient.
Чтобы избавиться от экземпляра, вызовите MongoClient.close () для очистки ресурсов.
Следующий код создает объект подключения клиента MongoDB с пулом подключений для подключения к экземпляру MongoDB.
MongoClient mongoClient = MongoClients.create();
MongoDatabase database = mongoClient.getDatabase("test");
MongoClients.create()
stati c метод создает объект подключения, указанный хостом по умолчанию (localhost) и портом (27017). Вы можете явно указать другие параметры с помощью MongoClientSettings
, который задает различные параметры для управления поведением MongoClient
.
MongoClient mongoClient = MongoClients.create(MongoClientSettings settings)
Параметры пула подключений:
Объект ConnectionPoolSettings
указывает все параметры, которые относятся к пулу соединений с сервером MongoDB. Приложение создает этот пул соединений при создании объекта клиента. Это создание пула соединений определяется драйвером c.
ConnectionPoolSettings.Builder
является компоновщиком для ConnectionPoolSettings
имеет методы для указания свойств пула соединений. Например, maxSize(int maxSize)
: максимально допустимое количество подключений. По умолчанию 100
. Другие методы включают minSize
, maxConnectionIdleTime
, et c.
Код для создания MongoClient
с настройками пула соединений:
MongoClientSettings settings = MongoClientSettings.builder()
.applyToConnectionPoolSettings(builder ->
builder.maxSize(20).minSize(10)
.build();
MongoClient mongoClient = MongoClients.create(settings);
//...
// Verify the connection pool settings max size as
settings.getConnectionPoolSettings().getMaxSize()
Вопрос: Связан ли ConnectionPoolSetting с одним сервером mongos? или относится ко всем серверам mongos?
Клиент или приложение подключаются к изолированному кластеру (включая все его сегменты) через маршрутизатор mongos
. Клиентская программа указывает строку подключения URL-адреса и другие параметры подключения. В изолированном кластере клиент может подключиться через набор mongos
s или один mongos
, или несколько клиентов могут подключиться через один mongos
, et c.,; это зависит от архитектуры вашего приложения.
Если вы подключаетесь через один mongos
, вы можете указать mongos
хост, порт, пользователя / пароль и т. д. c., в соединении строка. Если это несколько mongos
, то несколько значений хост / порт. Независимо от количества mongos
клиентская программа подключается к кластеру только через один mongos
.
. Настройка пула подключений только для одного mongos
маршрутизатора, поскольку приложение подключается к одному mongos
независимо от количества mongos
s, указанных в строке подключения.