MongoDB-Java連接超時問題解決彙總

先用一張圖來描述MongoDB鏈接超時問題
clipboard.pngmongodb

如下是我在網絡上收集到的:數據庫

官方的解決方法
連接描述windows

clipboard.png


set the tcp keepalive
連接描述網絡

clipboard.png


聚合查詢
解決方案是建立相關的索引
連接描述異步


正確建立索引
background設置成異步的
db.getCollection('project').ensureIndex({'_id' : 1, 'A' : 1}, {'background': 'true'})
連接描述socket

clipboard.png

對於第一種
其實官方給出來的必定要細讀(我就是這裏出問題了)
有兩段寫的很詳細了
clipboard.png
這兩段說道:提供MongoDB服務的主機和負責連接數據庫的主機 都須要設置keepalive;非Linux系統的主機(好比 windows) 設置keepalive的值大於或等於 10分鐘都將被忽略,意思就是沒有值,不會被keepalive,然而Linux的會有一個默認或上限值;最終意思就是windows是沒有默認或上限值的,沒有設置值或者超過了,keepalive都不會生效。tcp

最後附上一篇外文
連接描述spa

說明
以上只作參考,具體問題實際分析。歡迎指出不對之處,歡迎補充,謝謝。.net

相關文章
相關標籤/搜索