我的MongoDB地图集有问题。我正在运行Atlas 3.4版实例M20版。我正在使用的环境是AWS Lambda架构,在数据库上有多个服务查询。
由于某种原因,数据库在几分钟内达到其最大连接数(700个连接),并且数据库崩溃。
我尝试了一些在线找到的解决方案-使用context.callbackWaitsForEmptyEventLoop = false
;
并使用dbpool将数据库设置为单例,但仍然无法保持低连接。
当前,我正在使用这组选项来运行数据库:
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; };
有人遇到过这些麻烦吗?