为了账号安全,请及时绑定邮箱和手机立即绑定

mongoError:拓扑已被破坏

mongoError:拓扑已被破坏

慕丝7291255 2019-10-28 10:14:46
我有一个用Restify和Mongoose在node.js中构建的REST服务,以及一个mongoDB,它的集合包含大约30.000个常规大小的文档。我的节点服务通过pmx和pm2运行。昨天,节点突然开始通过消息“ MongoError:拓扑已被破坏”消除错误,仅此而已。我不知道这是什么意思,可能触发了什么。谷歌搜索时也没有太多发现。所以我想在这里问。今天重新启动了节点服务后,错误停止了出现。我也有一个正在生产中运行,并且让我害怕的是,这可能在任何给定时间发生在运行在那里的安装程序的相当关键的部分...我正在使用以下版本的提及的软件包:猫鼬:4.0.3重新调整:3.0.3节点:0.10.25
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

这似乎意味着您的节点服务器与MongoDB实例的连接在尝试写入时已中断。


看一下产生该错误的Mongo源代码


Mongos.prototype.insert = function(ns, ops, options, callback) {

    if(typeof options == 'function') callback = options, options = {};

    if(this.s.state == DESTROYED) return callback(new MongoError(f('topology was destroyed')));

    // Topology is not connected, save the call in the provided store to be

    // Executed at some point when the handler deems it's reconnected

    if(!this.isConnected() && this.s.disconnectHandler != null) {

      callback = bindToCurrentDomain(callback);

      return this.s.disconnectHandler.add('insert', ns, ops, options, callback);

    }


    executeWriteOperation(this.s, 'insert', ns, ops, options, callback);

}

这似乎与注释中提到的Sails问题无关,因为未安装任何升级来加速崩溃或“修复”


查看完整回答
反对 回复 2019-10-28
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我知道Jason的答案已被接受,但是Mongoose遇到了同样的问题,并且发现托管我的数据库的服务建议应用以下设置,以使Mongodb的连接在生产中保持活动状态:


var options = {

  server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } },

  replset: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } }

};

mongoose.connect(secrets.db, options);

我希望此回复可以帮助其他人遇到“拓扑已被破坏”错误。


查看完整回答
反对 回复 2019-10-28
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

此错误是由于mongo驱动程序出于任何原因断开连接(例如,服务器已关闭)。


默认情况下,猫鼬会尝试重新连接30秒钟,然后停止重试并永久抛出错误,直到重新启动为止。


您可以通过在连接选项中编辑这两个字段来更改此设置


mongoose.connect(uri, 

    { server: { 

        // sets how many times to try reconnecting

        reconnectTries: Number.MAX_VALUE,

        // sets the delay between every retry (milliseconds)

        reconnectInterval: 1000 

        } 

    }

);


查看完整回答
反对 回复 2019-10-28
  • 3 回答
  • 0 关注
  • 1077 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信