Число активных соединений достигло максимального значения Моно Атлас - PullRequest
3 голосов
/ 21 сентября 2019

У меня есть приложение .NetCore.Моя база данных - Mongo и размещена в Mongo Atlas.Я достигаю максимального количества соединений очень легко.У меня много запросов к БД, но мое соединение с БД - Singletone.

enter image description here

Я подключаюсь к Mongo через Mongo Client

MongoClient client = new MongoClient(config.GetConnectionString("Dbconnectionstring"));
IMongoDatabase database = client.GetDatabase("database");

Все это в классе, который зарегистрирован как синглетон в Startup.cs

services.AddSingleton<MongoUnitOfWork>();

У меня раньше не было этой проблемы.В этом текущем приложении я должен сделать много запросов к БД, но если я зарегистрировал соединение, как одноразовый, я ожидал использовать то же соединение и не открывать новое для каждого запроса.По крайней мере, это то, что, как мне кажется, происходит.

ОБНОВЛЕНИЕ

Я использовал рекуррентный сервис с именем HangFire (предназначенный для использования для повторяющихся заданий), который нуждался в строке соединения дляБД.Несмотря на то, что я не включал функцию автоматического вызова каждые 1 минуту или что-то подобное, я думаю, что это была проблема.На данный момент я прокомментировал каждую вещь об этом сервисе, и все вернулось к норме.

Я вернусь, как только я на 100% уверен, что это была проблема.

ОБНОВЛЕНИЕ 2

Сегодня у меня снова возникла проблема, поэтому я решил, что рекуррентная служба не проблема.

ОБНОВЛЕНИЕ 3

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

Кроме того, да, я уверен, что я использую синглтон для создания экземпляров MongoClient.Я также ставлю точки останова, чтобы посмотреть, будут ли они получены по запросу.Не запросы являются проблемой.

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