mysql連接池druid監(jiān)控配置小結(jié)
前置
連接池有很多類型,比如 c3p0,比如 hikariCP,比如 druid。c3p0 一些歷史項目可能用的比較多,hikariCP 需要高性能的項目比較多,druid 性能也很好,而且還提供連接池的監(jiān)控面板
現(xiàn)在你使用 java,使用 mysql,配置好了基本的 mysql 數(shù)據(jù)庫的驅(qū)動配置,配置好了 druid 連接池基本內(nèi)容
你想要監(jiān)控 mysql 連接池的慢 sql 情況,連接泄漏等詳細情況,可以考慮使用 druid 提供的監(jiān)控能力
| 模塊 | 功能描述 |
|---|---|
| 數(shù)據(jù)源 | 查看數(shù)據(jù)庫連接池的狀態(tài)(活躍連接數(shù)、空閑連接數(shù)、連接等待時間等)。 |
| SQL 監(jiān)控 | 顯示 SQL 執(zhí)行次數(shù)、總耗時、慢查詢(默認慢查詢閾值為 1000ms)。 |
| Session 統(tǒng)計 | 監(jiān)控用戶的會話信息(如最大并發(fā)連接數(shù)、會話超時時間等)。 |
| Web 統(tǒng)計 | 查看 HTTP 請求的統(tǒng)計信息(如請求次數(shù)、平均響應時間、失敗次數(shù)等)。 |
| 系統(tǒng)信息 | 顯示 JVM 內(nèi)存、線程、GC 狀態(tài)等系統(tǒng)級監(jiān)控數(shù)據(jù)。 |
依賴
如果你配置了 druid 的一些基本連接池的內(nèi)容,這里不贅述,那么你肯定引入了 druid 的依賴了
啟用配置
Springboot 配置
如果你是 Springboot 項目,在 application.yml 中配置即可
其中 stat-view-servlet 表示承接 /druid/ 請求的 servlet,web-stat-filter 表示濾過哪些請求以及排查哪些請求
spring:
datasource:
druid:
# 啟用監(jiān)控頁面
stat-view-servlet:
enabled: true
url-pattern: /druid/*
login-username: admin # 登錄用戶名
login-password: admin123 # 登錄密碼
reset-enable: false # 是否允許重置數(shù)據(jù)(生產(chǎn)環(huán)境建議關(guān)閉)
web-stat-filter:
enabled: true
url-pattern: /* # 監(jiān)控所有請求
exclusions: "*.js,*.css,/druid/*" # 排除靜態(tài)資源
只用了 mybatis 沒用 spring
如果你不是 springboot 項目,你只用了 mybatis:
mybatis-config.xml 中配置好 druid 連接池的基本連接信息后,多配置上:
<property name="filters" value="stat,wall" /> <!-- 啟用監(jiān)控和防御SQL注入 -->
然后你的項目還是老的 WEB-INF 項目,其中有 web.xml 文件,那么其中要配置 servlet 和 filter
<!-- Druid 監(jiān)控 Servlet -->
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
<init-param>
<param-name>loginUsername</param-name>
<param-value>admin</param-value> <!-- 登錄用戶名 -->
</init-param>
<init-param>
<param-name>loginPassword</param-name>
<param-value>admin123</param-value> <!-- 登錄密碼 -->
</init-param>
<init-param> <!-- 允許訪問的IP(可選) -->
<param-name>allow</param-name>
<param-value>127.0.0.1</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- Druid Web 監(jiān)控 Filter -->
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*.css,/druid/*</param-value> <!-- 排除靜態(tài)資源 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后如果項目使用 Servlet 3.0+ 并支持注解,可以通過 Java 配置類注冊來代替上方的在 web.xml 中的配置:你可以寫一個 DruidWebConfig 類來繼承 ServletContextListener,再重寫其中 contextInitialized 方法,其中你可以注冊 StatViewServlet 和 WebStatFilter,然后再 web.xml 配置一個監(jiān)聽即可
<listener>
<listener-class>com.test.config.DruidWebConfig</listener-class>
</listener>
訪問監(jiān)控
你本地啟動項目的話,你可以瀏覽器訪問:
http://localhost:8080/druid
如果你設(shè)置了 your-app-context(Web 應用部署到服務器上的應用上下文路徑),則你需要訪問
http://localhost:8080/your-app-context/druid

一些問題
頁面 404:一般是 stat-view-servlet 或者 web-stat-filter 沒配置對,一些常見的比如其他 filter 把這個請求攔截了
到此這篇關(guān)于mysql連接池druid監(jiān)控配置小結(jié)的文章就介紹到這了,更多相關(guān)mysql連接池druid監(jiān)控配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MYSQL IN 與 EXISTS 的優(yōu)化示例介紹
當B表的數(shù)據(jù)集必須小于A表的數(shù)據(jù)集時,用in優(yōu)于exists,當A表的數(shù)據(jù)集系小于B表的數(shù)據(jù)集時,用exists優(yōu)于in2014-08-08
php 不能連接數(shù)據(jù)庫 php error Can''t connect to local MySQL server
php 不能連接數(shù)據(jù)庫 php error Can't connect to local MySQL server through socket '/tmp/mysql.sock'2011-05-05
windows下MySQL 5.7.3.0安裝配置圖解教程(安裝版)
這篇文章主要介紹了windows下MySQL 5.7.3.0安裝配置圖解教程(安裝版),需要的朋友可以參考下2016-04-04
MySQL關(guān)于ERROR 1290 (HY000)報錯解決方法
在本篇文章里小編給大家整理的是關(guān)于MySQL關(guān)于ERROR 1290 (HY000)報錯的解決方法,有興趣的朋友們可以參考下。2019-09-09

