先用一張圖來描述MongoDB鏈接超時問題mongodb
如下是我在網絡上收集到的:數據庫
官方的解決方法
連接描述windows
set the tcp keepalive
連接描述網絡
聚合查詢
解決方案是建立相關的索引
連接描述異步
正確建立索引
將background
設置成異步的db.getCollection('project').ensureIndex({'_id' : 1, 'A' : 1}, {'background': 'true'})
連接描述socket
對於第一種
其實官方給出來的必定要細讀(我就是這裏出問題了)
有兩段寫的很詳細了
這兩段說道:提供MongoDB服務的主機和負責連接數據庫的主機 都須要設置keepalive
;非Linux系統的主機(好比 windows) 設置keepalive
的值大於或等於 10分鐘都將被忽略,意思就是沒有值,不會被keepalive
,然而Linux的會有一個默認或上限值;最終意思就是windows是沒有默認或上限值的,沒有設置值或者超過了,keepalive
都不會生效。tcp
最後附上一篇外文
連接描述spa
說明
以上只作參考,具體問題實際分析。歡迎指出不對之處,歡迎補充,謝謝。.net