在項目中使用阿里的druid連接池,pom文件配置:
1
2
3
4
5
6
7
8
9
10
|
< dependency > < groupId >mysql</ groupId > < artifactId >mysql-connector-java</ artifactId > < scope >runtime</ scope > </ dependency > < dependency > < groupId >com.alibaba</ groupId > < artifactId >druid-spring-boot-starter</ artifactId > < version >1.1.14</ version > </ dependency > |
application.properties配置,官方文檔可查:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# Druid連接池配置,官方配置參考:https: //github.com/alibaba/druid/tree/master/druid-spring-boot-starter spring.datasource.url=jdbc:mysql: //localhost:3306/test?serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password= 123456 spring.datasource.driver- class -name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # Druid其他配置 spring.datasource.druid.initial-size= 5 spring.datasource.druid.max-active= 20 spring.datasource.druid.min-idle= 10 spring.datasource.druid.max-wait= 10 spring.datasource.druid.filters=stat,wall spring.datasource.druid.filter.stat.log-slow-sql= true spring.datasource.druid.filter.stat.slow-sql-millis= 2000 # Druid WebStatFilter配置,說明請參考Druid Wiki,配置_配置WebStatFilter spring.datasource.druid.web-stat-filter.enabled= true spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-stat-filter.exclusions=*.gif,*.png,*.jpg,*.html,*.js,*.css,*.ico,/druid/* # Druid StatViewServlet配置,說明請參考Druid Wiki,配置_StatViewServlet配置 spring.datasource.druid.stat-view-servlet.enabled= true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.reset-enable= true spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin spring.datasource.druid.stat-view-servlet.allow= spring.datasource.druid.stat-view-servlet.deny= |
OK,搞定~
接下來,啟動項目,打開地址:http://localhost:8080/druid
頁面長這樣:
我來請求一下接口,查詢sql,確實監(jiān)控到了:
補(bǔ)充知識:druid 配置理解及監(jiān)控界面參數(shù)理解
druid 配置理解
官方文檔中的很多配置,不是太理解或者貌似理解了,自己不實踐一下,心里也不踏實,所以決定自己搞一個demo測試一下理解理解各個配置到底是什么意思
一、druidDataSource 配置
參數(shù)名稱 | 我的理解 | 官方說明 |
---|---|---|
pool-prepared-statements | preparedStatement的創(chuàng)建會消耗很多的系統(tǒng)資源,同樣的sql可以重用preparedStatement | 是否緩存preparedStatement,也就是PSCache。PSCache對支持游標(biāo)的數(shù)據(jù)庫性能提升巨大,比如說oracle。在mysql下建議關(guān)閉 |
initial-size | 初始化連接數(shù) | 連接池建立時創(chuàng)建的初始化連接數(shù) |
max-pool-prepared-statement-per-connection-size | 這個我不是太確定,這個應(yīng)該是PSCache的緩存大小吧,官方說可以給大一點,單位也不清楚,那就給100吧 | … |
validation-query | 這個配置還是很容易理解的,關(guān)鍵是怎么去驗證一下,比如在testOnBorrow=true,當(dāng)申請鏈接時,確實會執(zhí)行validation-query.我是這樣驗證的,validation-query=select 1 from dualss(有語法錯誤的sql),結(jié)果在申請鏈接的時候就報錯了,證明在testOnBorrow的時候確實執(zhí)行了validation-query,后面的testOnReturn,testWhileIdle我沒有驗證,應(yīng)該都一樣 | 用來檢測連接是否有效的sql,要求是一個查詢語句,常用select ‘x'。如果validationQuery為null,testOnBorrow、testOnReturn、testWhileIdle都不會起作用。 |
validation-query-timeout | 不知道怎么驗證 | … |
test-on-borrow | 不知道怎么驗證,因為無論是true,還是false,只要validation-query有值,都會執(zhí)行一下validation-query | |
test-on-return | 不知道怎么驗證 | |
test-while-idle | 不知道怎么驗證 | |
time-between-eviction-runs-millis | 默認(rèn)是1分鐘,就是destory每隔1分鐘會執(zhí)行一次 |
二、后臺監(jiān)控頁面中的各數(shù)值的含義
我的端口是8585,就是如下圖這個界面中每行
參數(shù)名稱 | 中文 | 我的理解 | 官方說明 |
---|---|---|---|
ActiveCount | 活躍連接數(shù) | 有n個連接正在執(zhí)行sql,那么這個值就為n | 當(dāng)前連接池中活躍連接數(shù) |
InitialSize | 初始化連接大小 | 默認(rèn)就是項目啟動就會初始化的連接數(shù) | 連接池建立時創(chuàng)建的初始化連接數(shù) |
LogicConnectCount | 邏輯連接打開次數(shù) | 與MaxActive沒有關(guān)系,連接被用一次,LogicConnectCount就會+1,就是連接池中的連接被用次數(shù)綜合 | 產(chǎn)生的邏輯連接建立總數(shù) |
minEvictableIdleTimeMillis | 連接保持空閑而不被驅(qū)逐的最小時間 |
以上這篇SpringBoot集成Druid監(jiān)控頁面最小化配置操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://blog.csdn.net/xqnode/article/details/88377296