關於配置mongoDB連接池


首先列一下mongoDB連接的一些基本配置信息

mongoDB.user=
mongoDB.password=
mongoDB.port=27017
mongoDB.databaseName=job
mongoDB.address=10.13.45.166

mongoDB.collection=job
mongoDB.collection2=ReadRecord
#連接池最大連接數
mongoDB.connectionsPerHost=20
#連接池最小連接數
mongoDB.minConnectionsPerHost=5
#線程隊列數,此值和連接池的乘積為最大連接數,超出這個數會讓請求線程等待
mongoDB.threadsAllowedToBlockForConnectionMultiplier=5
#單位為ms,默認0,無限時間,客戶端訪問服務器的超時時間
mongoDB.connectTimeout=10000
#最大等待時間,若連接都被使用,線程的最大等待時間
mongoDB.maxWaitTime=10000
#線程最大空閑時間,默認0,無限制
mongoDB.maxConnectionIdleTime=0
#線程的生命時間
mongoDB.maxConnectionLifeTime=0
#客戶端連接到數據庫后,等待數據返回的最大等待時間,默認為0,無限制
mongoDB.socketTimeout=10000

 

這些是比較重要的信息,再說說今天開發遇到的問題,就是配置完mongoDB的連接池啟動項目后,控制台一直在打印close Connection 然后 openConnection ,就是5個最小連接數一直在重復的

關閉然后創建,這樣多了很多無用的服務器負載,本意是連接創建后一直等待調用。然后查了一下貌似mongoDB 4.0以上的版本才支持spring的事務管理,並且mongoDB的驅動jar包中內置了連

接池,並且線程安全。那就說明人家給我們都已經准備好了,那就是我配置的連接池參數出現了問題,首先注意到的是maxConnectionLifeTime(連接的生命時間),設0之后發現沒有改善。

  最后發現是maxConnectionIdleTime   連接的最長等待時間,連接被創建后,等待被調用,一直沒被調用,就銷毀了,然后為了保持最小連接數,就一直在close+open,設0,啟動服務器,無異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM