這里我主要介紹druid 比較重要的參數解釋,不做druid的使用介紹,druid雖然功能強大,但是如果對配置參數理解不到位,性能非但不能達到很優,而且會出現很多異常,所以使用druid之前一定要清楚參數設置,要不永遠有踩不完的坑。
這里主要介紹那些參數是必要的,對於值的大小,需要根據自己服務器情況,設置。
spring.datasource.initialSize=5 // 數據庫連接池初始化連接數
spring.datasource.minIdle=5 //數據庫連接池中最小連接數,如果長時間不使用,連接池中也應該保持最小連接數個連接。
spring.datasource.maxActive=20 // 數據庫連接池中最大連接數,當高並發時,可以使用的最大連接數,當在空閑時,連接數會釋放值最小連接數。
spring.datasource.maxIdle=8 //已經不再使用,配置了也沒效果
spring.datasource.maxWait=10000 //獲取數據庫連接的最長等待時間(毫秒),如果超過此時間還沒有獲得連接,則拋出異常,設置為-1,則表示獲取不到連接,則無限等待
spring.datasource.validationQuery = select 1 //一個查詢語句,后面的一些屬性會依賴這個配置,
如果validationQuery為null,testOnBorrow、testOnReturn、testWhileIdle都不會其作用。
spring.datasource.testOnBorrow = fasle // 申請連接時執行validationQuery判斷連接的有效性,這個配置會降低配置
spring.datasource.testOnReturn=false // 歸還連接時執行validationQuery判斷連接的有效性,如果這個鏈接失效則刪除,這個配置會降低配置
spring.datasource.testWhilIdle=true // 申請連接的時候有條件檢測鏈接是否可用,條件:如果空閑時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。
spring.datasource.timeBetweenEvictionRunsMillis= 60000
//這個屬性很關鍵,主要有兩方面作用,第一:數據庫連接池destory線程檢測鏈接有效性的間隔時間(destory會在周期時間檢查連接有效性,關閉無效的鏈接。)
//第二:當testWhilIdle 設置為true的時候,testWhilIdle 檢查條件依賴這個屬性值。
spring.datasource.minEvictableIdleTimeMillis =30000 Destory線程中如果檢測到當前連接的最后活躍時間和當前時間的差值大於minEvictableIdleTimeMillis,則關閉當前鏈接。
。申請連接的時候檢測,如果空閑時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。