求問大神,對于mongodb以下幾個參數(shù)我的理解對不對?
maxWaitTime=120000 是指已經(jīng)連接到mongodb,正在等待數(shù)據(jù)返回,這個等待的時間
connectTimeout=10000 是指請求mongodb連接,還沒有連接上,正在等待連接的時間
socketTimeout=0 是指已經(jīng)連接上了,正在傳輸數(shù)據(jù),傳輸數(shù)據(jù)過程中會有耗時,這里就是等數(shù)據(jù)傳遞結(jié)束的等待時間
Stackoverflow上有一個有140次贊的回答:如何配置 MongoDB Java 驅(qū)動 MongoOptions 供生產(chǎn)使用?
連接超時。顧名思義,驅(qū)動程序在連接嘗試中止之前將等待的毫秒數(shù)。將超時設(shè)置為較長的??值(15-30 秒),除非存在實際的預(yù)期機會,否則會妨礙成功的連接嘗試。通常,如果連接嘗試花費的時間超過幾秒,您的網(wǎng)絡(luò)基礎(chǔ)設(shè)施就無法實現(xiàn)高吞吐量。
最大等待時間。線程將等待連接池中的連接變得可用的毫秒數(shù),如果未及時發(fā)生,則會引發(fā)異常。保持默認。
socketTimeout。標準套接字超時值。設(shè)置為 60 秒 (60000).
補充說明如下:
MongoDB Client驅(qū)動設(shè)置中網(wǎng)絡(luò)相關(guān)的等待設(shè)置比較多,依次介紹如下:
1、Client找Server所需要等待的時間,在RS或者Shard環(huán)境下,Client需要找到它所需的Server
對應(yīng)的參數(shù):ServerSelctionTimeOut
2、找到Server之后就需要建立Connection
1)每次都創(chuàng)建Connection,對應(yīng)的網(wǎng)絡(luò)等待的參數(shù)就是:connectTimeout
2)Connection pooling的話,從Connection Pool取得Connection,對應(yīng)的網(wǎng)絡(luò)等待的參數(shù):maxWaitTime.
3、找到Connection之后,就有了Socket通信,在客戶端和MonogoDB的Socket通信過程中的網(wǎng)絡(luò)等待時間的參數(shù)就是:socketTimeout
供參考。
Love MongoDB!Have Fun!