У меня проблема с моим MongoDB Atlas. Я использую Atlas версии 3.4, экземпляр M20. Средой, в которой я работаю, является архитектура AWS Lambda с несколькими сервисами, запрашивающими БД.

По какой-то причине, БД достигает своих максимальных соединений (700 соединений) за несколько минут, и БД падает.

Я пробовал некоторые решения, которые я нашел в Интернете - используя context.callbackWaitsForEmptyEventLoop = false ; и установка db как одиночного с использованием dbpools, но все еще не может поддерживать низкое количество соединений.

В настоящее время я использую этот набор параметров для запуска БД:

const mongo = require('mongodb').MongoClient; const log = require('./logger');

let cachedDbs = {};

module.exports.get = async uri => {   let cachedDb = cachedDbs[uri];

  if (cachedDb && cachedDb.serverConfig.isConnected()) {
    return cachedDb;   }

  log.info('Getting db connection to', uri);

  const client = await mongo.connect(uri, {
    useNewUrlParser: true,
    appname: process.env.SERVICE_NAME,
    reconnectTries: 5,
    poolSize: 5,
    maxIdleTimeMS: 1000,
    socketTimeoutMS: 1000,
    waitQueueTimeoutMS: 1000   });   cachedDb = await client.db();   cachedDbs[uri] = cachedDb;

  return cachedDb;   };

У кого-нибудь были такие проблемы раньше?

0