亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mongoError:拓撲已被破壞

mongoError:拓撲已被破壞

慕森卡 2019-12-11 09:09:58
我有一個用Restify和Mongoose在node.js中構建的REST服務,以及一個mongoDB,它的集合包含大約30.000個常規大小的文檔。我的節點服務通過pmx和pm2運行。昨天,節點突然開始通過消息“ MongoError:拓撲已被破壞”消除錯誤,僅此而已。我不知道這是什么意思,可能觸發了什么。谷歌搜索時也沒有太多發現。所以我想在這里問。今天重新啟動了節點服務后,錯誤停止了出現。我也有一個正在生產中運行,并且讓我害怕的是,這可能在任何給定時間發生在運行在那里的安裝程序的相當關鍵的部分...我正在使用以下版本的提及的軟件包:貓鼬:4.0.3重新調整:3.0.3節點:0.10.25
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

這似乎意味著您的節點服務器與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-12-12
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

我知道Jason的答案已被接受,但是Mongoose遇到了同樣的問題,并且發現托管我的數據庫的服務建議應用以下設置,以使Mongodb的連接在生產中保持活動狀態:


var options = {

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

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

};

mongoose.connect(secrets.db, options);

我希望此回復可以幫助其他人遇到“拓撲已被破壞”錯誤。



查看完整回答
反對 回復 2019-12-12
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

此錯誤是由于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-12-12
  • 3 回答
  • 0 關注
  • 751 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號