MongoDB java連接參數說明

    MongoDB在java中使用時,客戶端連接參數說明;

    此說明居於mongo驅動包:mongodb-driver-3.4.2,官方驅動下載地址:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

    緣起一次mongo連接,客戶端連接不會釋放;

    客戶端不會釋放帶來的問題是:

         1、如果在某次請求過多時,開啓的線程過多,導致連接猛增,快速打滿連接池,建立的連接不會釋放;

         2、大量不用的連接存放在連接池中,佔用mongo連接資源;

    經排查,mongo連接池中,有一個參數:maxIdleTimeMS未設置,在沒有設置此參數時,mongo驅動默認爲0,如果爲0,則連接池永遠不會釋放,不管該連接是否會被使用。

 

源碼:在ConnectionString類中,參考官方說明:https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options

通過源碼截圖可以看出,參數名稱不區分大小寫。

說明(部分):

類型 參數名 說明
連接選項 ssl 連接是否使用SSL進行連接,默認根據url來
connectTimeoutMS 連接超時時間,單位爲毫秒,默認爲0,永不超時
socketTimeoutMS 發送或者接收socket的超時時間,單位爲毫秒,默認爲0,永不超時
連接池 maxPoolSize 連接池最大數,默認值爲100,主要是參考客戶端應用個數以及mongo的服務器端設置的最大連接處來評估每個客戶端最大開啓的數量。
minPoolSize 連接池中最小連接存活數,默認爲0,啓動時,初始化的最小連接數。
maxIdleTimeMS

一個連接在池中的最大空閒時間,如果空閒超過此時間,則會被移除連接池,同時關閉連接,釋放連接資源;

默認爲0,永不釋放。

單位爲毫秒。

maxLifeTimeMS
最大有效存活時間,默認爲0,永遠存活
   
waitQueueMultiple 等待最大連接數,與maxPoolSize合用,傳遞給驅動中的參數
threadsAllowedToBlockForConnectionMultiplier
默認爲5
waitQueueTimeoutMS 等待獲取連接最大超時時間,默認爲0,永不超時。
     
     

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章