使用SpringBoot簡單了解Druid的監(jiān)控系統(tǒng)的配置方法
Druid 介紹
說起 Druid,大家首先想到的是阿里的 Druid 數(shù)據(jù)庫連接池 Apache Druid 具有以下特點(diǎn): 亞秒級 OLAP 查詢,包括多維過濾、Ad-hoc 的屬性分組、快速聚合數(shù)據(jù)等等。實(shí)時(shí)的數(shù)據(jù)消費(fèi),真正做到數(shù)據(jù)攝入實(shí)時(shí)、查詢結(jié)果實(shí)時(shí)。高效的多租戶能力,最高可以做到幾千用戶同時(shí)在線查詢。擴(kuò)展性強(qiáng),支持 PB 級數(shù)據(jù)、千億級事件快速處理,支持每秒數(shù)千查詢并發(fā)。極高的高可用保障,支持滾動升級。
Druid監(jiān)控系統(tǒng)作用
查看慢SQL [ 可進(jìn)行對 SQL 優(yōu)化 ] 是否有惡意攻擊 并發(fā)時(shí)的數(shù)量 事務(wù)的提交 JDBC執(zhí)行的次數(shù) 訪問時(shí)URL的監(jiān)控 請求的次數(shù)等等…下面是Druid 的監(jiān)控系統(tǒng)首頁截圖, 只需要簡單配置就可以使用

開始配置
首先創(chuàng)建一個(gè)SpringBoot的項(xiàng)目
需用引入以下幾個(gè)工具
如圖

在 pom.xml 文件中引入druid連接池的依賴
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version></dependency>
resources下新創(chuàng)建一個(gè)在 application.yml 文件, 指定使用druid的連接池
spring: datasource: # Springboot默認(rèn)會使用自帶的 HikariDataSource password: root username: root url: jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai driver-class-name: com.mysql.cj.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource # 指定使用 druid 的連接池
創(chuàng)建一個(gè)DruidConfig.java配置類
package com.springboot.druid.config;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.http.StatViewServlet;import com.alibaba.druid.support.http.WebStatFilter;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Arrays;import java.util.HashMap;import java.util.Map;/** * 對 Druid 的監(jiān)控配置對象注入到容器中 * Created by YongXin Xue on 2020/06/04 15:18 */@Configurationpublic class DruidConfig { /** * * @return */ @Bean // 當(dāng)前類如果是組件類,對象創(chuàng)建時(shí)容器也會調(diào)用此方法將方法的返回值注入到容器中 @ConfigurationProperties(prefix = 'spring.datasource') // 加載配置文件中的配置設(shè)置給返回的對象 public DruidDataSource getDataSoures(){ return new DruidDataSource(); } /** * 配置一個(gè)管理后臺的Servlet [ 配置Druid的監(jiān)控系統(tǒng) ] * 訪問時(shí)默認(rèn)會生成一個(gè)頁面 * @return */ @Bean public ServletRegistrationBean statViewServlet() { // 當(dāng)前 Druid 的后臺監(jiān)控系統(tǒng)的訪問地址 /druid/* ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), '/druid/*'); Map<String, String> initParams = new HashMap<>(); initParams.put('loginUsername', 'admin'); initParams.put('loginPassword', 'admin'); // 默認(rèn)就是允許所有訪問 initParams.put('allow', ''); initParams.put('deny', '192.168.15.21');//ip黑名單 bean.setInitParameters(initParams); return bean; } /** * 配置一個(gè)web監(jiān)控的filter:訪問靜態(tài)資源一定沒有sql操作 * @return */ @Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String, String> initParams = new HashMap<>(); //排除過濾 initParams.put('exclusions', '*.jpg,*.avi,*.js,*.css,/druid/*'); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList('/*')); return bean; }}
配置完成后, 運(yùn)行主程序在瀏覽器輸入本機(jī)的地址加自己配置的tomcat端口加/druid/既可以打開druid的后臺監(jiān)控系統(tǒng)了
如圖

趕緊來寫兩行代碼測測性能吧 !!
總結(jié)
到此這篇關(guān)于使用SpringBoot簡單了解Druid的監(jiān)控系統(tǒng)的配置方法的文章就介紹到這了,更多相關(guān)springboot druid 監(jiān)控系統(tǒng)內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 使用Python webdriver圖書館搶座自動預(yù)約的正確方法2. Linux刪除系統(tǒng)自帶版本Python過程詳解3. PHP如何開啟Opcache功能提升程序處理效率4. Python3 json模塊之編碼解碼方法講解5. 在線php代碼縮進(jìn)、代碼美化工具:PHP Formatter6. Android 簡單的實(shí)現(xiàn)滑塊拼圖驗(yàn)證碼功能7. Python 合并拼接字符串的方法8. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條9. Android Studio實(shí)現(xiàn)格式化XML代碼順序10. 淺談由position屬性引申的css進(jìn)階討論

網(wǎng)公網(wǎng)安備