You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测MongoDB重连失败事件(基于Node.js MongoDB驱动)

Node.js MongoDB驱动:重连配置与状态监听全指南

我来帮你梳理下当前Node.js MongoDB驱动的重连配置和状态监听实现,结合你的需求补充完整的事件处理逻辑:

你的连接配置解析

你当前的连接选项已经设置了非常实用的超时与重连规则,我帮你拆解下每个参数的作用:

  • connectTimeoutMS: 30000:设置连接建立的超时时间,30秒内无法建立连接则判定初始连接失败
  • socketTimeoutMS: 30000:Socket通信超时阈值,30秒内未收到MongoDB的响应就会断开当前连接
  • reconnectTries: 120:驱动最多尝试120次重连
  • reconnectInterval: 1000:每次重连前等待1秒,算下来总重连窗口是2分钟(120*1秒)

完整的配置代码示例:

const { MongoClient } = require('mongodb');

// 你的连接配置
const connectionOptions = { 
  connectTimeoutMS: 30000, 
  socketTimeoutMS: 30000, 
  reconnectTries: 120, 
  reconnectInterval: 1000 
};

// 建立连接
MongoClient.connect('mongodb://your-mongo-host:27017/your-db-name', connectionOptions, (err, client) => {
  if (err) {
    console.error('初始连接MongoDB失败:', err);
    return;
  }
  
  const db = client.db('your-db-name');
  // 在这里绑定状态监听事件
});

完整的状态监听事件实现

你已经添加了close事件监听,但要覆盖重连的全流程,还需要补充几个关键事件的处理:

1. close 事件:连接断开触发

当连接意外断开或被主动关闭时触发,适合在这里记录断开日志或触发告警:

db.on('close', () => {
  console.warn('⚠️ MongoDB连接已断开,驱动即将启动重连流程');
  // 可选:发送告警通知到运维系统
});

2. error 事件:连接/操作错误触发

任何连接相关的错误(包括重连过程中的中间失败)都会触发这个事件,注意不要在这里直接终止进程,否则会打断重连逻辑:

db.on('error', (err) => {
  console.error('❌ MongoDB连接错误:', err.message);
  // 针对特定错误类型做提示
  if (err.message.includes('ECONNREFUSED')) {
    console.warn('⚠️ MongoDB服务暂时不可达,驱动正在重试连接');
  }
});

3. reconnect 事件:重连成功触发

当驱动成功重新建立连接时触发,适合在这里记录恢复日志或恢复业务流程:

db.on('reconnect', () => {
  console.info('✅ MongoDB连接已重新建立,业务可恢复正常');
  // 可选:重启之前暂停的定时任务、消息消费等业务逻辑
});

4. reconnectFailed 事件:重连全部失败触发

当达到reconnectTries设定的次数仍未成功重连时触发,这时候需要执行降级或紧急处理逻辑:

db.on('reconnectFailed', () => {
  console.error('💥 MongoDB重连失败,已达最大重试次数!');
  // 可选:切换到备用存储、触发运维紧急告警、启动服务降级逻辑
});

生产环境注意事项

  • 避免在error事件中调用process.exit():这会直接终止进程,导致驱动无法继续执行重连
  • 新版本驱动兼容提示:如果你使用MongoDB驱动3.0+版本,reconnectTries和reconnectInterval已被标记为废弃,推荐使用autoReconnect: true配合serverSelectionTimeoutMS,或者启用retryWrites等新特性
  • 日志监控:建议将这些状态事件的日志接入你的监控系统,方便实时排查连接问题

内容的提问来源于stack exchange,提问作者Joey Yi Zhao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:33:42