SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的問題解析
Druid連接池是阿里巴巴開源的數(shù)據(jù)庫連接池項目。Druid連接池為監(jiān)控而生,內(nèi)置強大的監(jiān)控功能,監(jiān)控特性不影響性能。
Druid的監(jiān)控統(tǒng)計功能是通過filter-chain擴展實現(xiàn),采集的信息非常全面,包括SQL執(zhí)行、并發(fā)、慢查、執(zhí)行時間區(qū)間分布等。并且Druid內(nèi)置提供了一個StatViewServlet用于展示Druid的統(tǒng)計信息,提高h(yuǎn)tml頁面展示非常完備的監(jiān)控信息,可以快速診斷系統(tǒng)的瓶頸。
而Druid增加StatFilter之后,能采集大量統(tǒng)計信息,同時對性能基本沒有影響。StatFilter對CPU和內(nèi)存的消耗都極小,對系統(tǒng)的影響可以忽略不計。監(jiān)控不影響性能是Druid連接池的重要特性。
在SpringBoot工程中引入Druid連接池非常簡單。
首先需要引入pom
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
在yml中增加一些配置
spring:
http:
encoding:
charset: UTF-8
force: true
enabled: true
datasource:
url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
username: root
password : 123456
driverClassName : com.mysql.cj.jdbc.Driver
type : com.alibaba.druid.pool.DruidDataSource
druid:
initialSize: 5
minIdle: 5
maxActive: 20
# 配置獲取連接等待超時的時間
maxWait: 60000
# 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打開PSCache,并且指定每個連接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置監(jiān)控統(tǒng)計攔截的filters,去掉后監(jiān)控界面sql無法統(tǒng)計,'wall'用于防火墻
filters: stat,wall,log4j2
# 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多個DruidDataSource的監(jiān)控數(shù)據(jù)
useGlobalDataSourceStat: true
# StatViewServlet配置 sql監(jiān)控
stat-view-servlet:
enabled: true
url-pattern: "/druid/*"
reset-enable: false
login-username: druid
login-password: druid123
#允許那些ip
allow: 127.0.0.1,192.168.120.93
#禁止那些ip
deny: 192.168.120.93
# WebStatFilter配置 web-jdbc關(guān)聯(lián)監(jiān)控
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
配置監(jiān)控頁面訪問密碼,通過設(shè)置login-username 和 login-password這兩個初始參數(shù)。
allow和deny這兩個參數(shù),可以做訪問控制。deny優(yōu)先于allow,如果在deny列表中,就算在allow列表中,也會被拒絕。如果allow沒有配置或者為空,則只允許127.0.0.1訪問。
ip配置格式:<IP>或者 <IP>/<SUB_NET_MASK_size>
啟動服務(wù)后,訪問http://localhost:8080/druid 就可以訪問監(jiān)控頁面。輸入訪問密碼后,可對系統(tǒng)運行情況進(jìn)行監(jiān)控。

監(jiān)控web-jdbc關(guān)聯(lián)

到此這篇關(guān)于SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的文章就介紹到這了,更多相關(guān)SpringBoot集成Druid連接池SQL監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot項目運行一段時間后自動關(guān)閉的坑及解決
這篇文章主要介紹了SpringBoot項目運行一段時間后自動關(guān)閉的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
SpringSecurity跨域請求偽造(CSRF)的防護(hù)實現(xiàn)
本文主要介紹了SpringSecurity跨域請求偽造(CSRF)的防護(hù)實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07

