問大神,對於mongodb以下幾個參數我的理解對不對?
maxWaitTime=120000 是指已經連接到mongodb,正在等待資料返回,這個等待的時間
connectTimeout=10000 是指請求mongodb連接,還沒有連接上,正在等待連接的時間
socketTimeout=0 是指已經連接上了,正在傳輸數據,傳輸數據過程中會有耗時,這裡就是等數據傳遞結束的等待時間
过去多啦不再A梦2017-05-17 10:04:52
Stackoverflow上有一個有140次讚的答案:如何設定 MongoDB Java 驅動程式 MongoOptions 供生產使用?
連接超時。顧名思義,驅動程式在連線嘗試中止之前將等待的毫秒數。將超時設定為較長的時間(15-30 秒),除非存在實際的預期機會,否則這將妨礙成功的連線嘗試。通常,如果連線嘗試花費的時間超過幾秒鐘,您的網路基礎架構就無法實現高吞吐量。
最大等待時間。執行緒將等待連線池中的連線變得可用的毫秒數,如果未及時發生,則會引發例外狀況。保持預設。
socketTimeout。標準套接字超時值。設定為 60 秒 (60000).
淡淡烟草味2017-05-17 10:04:52
補充說明如下:
MongoDB Client驅動設定中網路相關的等待設定比較多,依序介紹如下:
1、Client找Server所需要等待的時間,在RS或Shard環境下,Client需要找到它所需的Server
對應的參數:ServerSelctionTimeOut
2、找到Server之後就需要建立Connection
1)每次都创建Connection,对应的网络等待的参数就是:connectTimeout
2)Connection pooling的话,从Connection Pool取得Connection,对应的网络等待的参数:maxWaitTime.
3、找到Connection之後,就有了Socket通信,在客戶端和MonogoDB的Socket通信過程中的網路等待時間的參數就是:socketTimeout
供參考。
Love MongoDB! Have Fun!