文章目錄
- 前置
- 依賴
- 啟用配置
- 訪問監控
- 一些問題
前置
連接池有很多類型,比如 c3p0,比如 hikariCP,比如 druid。c3p0 一些歷史項目可能用的比較多,hikariCP 需要高性能的項目比較多,druid 性能也很好,而且還提供連接池的監控面板
現在你使用 java,使用 mysql,配置好了基本的 mysql 數據庫的驅動配置,配置好了 druid 連接池基本內容
你想要監控 mysql 連接池的慢 sql 情況,連接泄漏等詳細情況,可以考慮使用 druid 提供的監控能力
模塊 | 功能描述 |
---|---|
數據源 | 查看數據庫連接池的狀態(活躍連接數、空閑連接數、連接等待時間等)。 |
SQL 監控 | 顯示 SQL 執行次數、總耗時、慢查詢(默認慢查詢閾值為 1000ms)。 |
Session 統計 | 監控用戶的會話信息(如最大并發連接數、會話超時時間等)。 |
Web 統計 | 查看 HTTP 請求的統計信息(如請求次數、平均響應時間、失敗次數等)。 |
系統信息 | 顯示 JVM 內存、線程、GC 狀態等系統級監控數據。 |
依賴
如果你配置了 druid 的一些基本連接池的內容,這里不贅述,那么你肯定引入了 druid 的依賴了
啟用配置
Springboot 配置
如果你是 Springboot 項目,在 application.yml 中配置即可
其中 stat-view-servlet 表示承接 /druid/
請求的 servlet,web-stat-filter 表示濾過哪些請求以及排查哪些請求
spring:datasource:druid:# 啟用監控頁面stat-view-servlet:enabled: trueurl-pattern: /druid/*login-username: admin # 登錄用戶名login-password: admin123 # 登錄密碼reset-enable: false # 是否允許重置數據(生產環境建議關閉)web-stat-filter:enabled: trueurl-pattern: /* # 監控所有請求exclusions: "*.js,*.css,/druid/*" # 排除靜態資源
只用了 mybatis 沒用 spring
如果你不是 springboot 項目,你只用了 mybatis:
mybatis-config.xml 中配置好 druid 連接池的基本連接信息后,多配置上:
<property name="filters" value="stat,wall" /> <!-- 啟用監控和防御SQL注入 -->
然后你的項目還是老的 WEB-INF 項目,其中有 web.xml 文件,那么其中要配置 servlet 和 filter
<!-- Druid 監控 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 監控 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> <!-- 排除靜態資源 --></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 配置一個監聽即可
<listener><listener-class>com.test.config.DruidWebConfig</listener-class>
</listener>
訪問監控
你本地啟動項目的話,你可以瀏覽器訪問:
http://localhost:8080/druid
如果你設置了 your-app-context(Web 應用部署到服務器上的應用上下文路徑),則你需要訪問
http://localhost:8080/your-app-context/druid
一些問題
頁面 404:一般是 stat-view-servlet 或者 web-stat-filter 沒配置對,一些常見的比如其他 filter 把這個請求攔截了