У меня проблема с моим 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; };
У кого-нибудь были такие проблемы раньше?