#node.js #mongodb #mern
#node.js #mongodb #mern
Вопрос:
Я новичок в mongodb и node.js , и сбит с толку объединением соединений. Предположим, что код выглядит следующим образом:
import mongodb from "mongodb";
const { MongoClient } = mongodb;
const client = new MongoClient("localhost:27017");
async function main() {
await client.connect();
}
Согласно документации драйвера, MongoClient по умолчанию имеет пул соединений размером 5.
Таким образом, каждый вызов await client.connect();
создает 1 соединение с mongod, и если я вызываю await client.connect()
6 раз, 6-е соединение не может быть установлено?
Ответ №1:
Пул соединений для каждого сервера, о котором известно клиенту. Многократный вызов connect не информирует клиента о дополнительных серверах и, следовательно, не влияет на количество подключений в пуле.
Отдельно клиент содержит одно соединение мониторинга на каждый известный сервер, так что при типичном развертывании набора реплик клиент, который не выполняет никаких операций, выполняемых приложением, будет иметь 3 открытых соединения, а не 1. В разделенных кластерах количество подключений для мониторинга совпадает с количеством процессов mongos.
Аналогично этому, если вы подключаетесь к набору реплик из 3 узлов с минимальным размером пула соединений, установленным равным 5, клиент установит 15 подключений приложений (по 5 на каждый узел RS) в дополнение к 3 подключениям мониторинга.