Что такое «соединение» в MongoDB? - PullRequest
0 голосов
/ 31 марта 2020

Я работаю с MongoDB некоторое время, и мне это очень нравится. Однако я не понимаю одну вещь: «Связи». Я искал в Интернете, и все просто очень расплывчатые и базовые c ответы. Я использую облачный сервис MongoDBs под названием «Atlas», и он описывает количество соединений как

Количество активных в данный момент соединений с этим сервером. Стек выделяется для каждого соединения; таким образом, очень большое количество соединений может привести к значительному использованию ОЗУ.

Однако у меня есть несколько вопросов.

Что такое соединение, я думаю? Насколько я понимаю, между сервером и базой данных установлена ​​связь. По существу, когда я использую mongoose.connect(...);, соединение установлено. Таким образом, самое большее, должно быть только одно соединение. Однако, когда я тестировал свою программу, я заметил, что мой счетчик подключений был равен 2, а в некоторые моменты он увеличился до 7, поднялся до 5 и колебался. "Связь" имеет какое-либо отношение к клиенту? На панели инструментов Atlas указано, что у меня максимальное количество подключений 500. Что означает это значение? Означает ли это, что только 500 пользователей могут использовать мой сайт одновременно? Если это так, как я могу увеличить это число? Или как я могу убедиться, что более 500 соединений никогда не будут переданы? Или соединение открывается, и мне приходится закрывать себя вручную? Потому что я учился на уроках и никогда ничего подобного не видел / не слышал.

Спасибо!

Ответы [ 2 ]

1 голос
/ 31 марта 2020

mon goose .connect не ограничивается 1 подключением к серверу Mon go.

По умолчанию mon goose создает пул из 5 подключений к Mon go.

При необходимости вы можете изменить это значение по умолчанию.

mongoose
    .connect(mongoURI, {poolSize : 200});

См. https://mongoosejs.com/docs/connections.html

0 голосов
/ 31 марта 2020

Больше соединений, которые вы видите в Atlas, потому что есть некоторые внутренние соединения, которые также выполняются для того, чтобы кластер работал, они могут включать соединения от:

  • Соединения, сделанные от клиента .
  • Внутренние соединения между первичным и вторичным.
  • Поскольку это размещенная служба, и все контролируется, поэтому соединения от агента мониторинга.

  • Как работает автоматизация, так и соединения от агента автоматизации.

Следовательно, всякий раз, когда в Atlas создается новый кластер, вы всегда будете видеть некоторые соединения на странице метрик. хотя ни один клиент не подключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...