使用SpringBoot簡(jiǎn)單了解Druid的監(jiān)控系統(tǒng)的配置方法
Druid 介紹
- 說(shuō)起 Druid,大家首先想到的是阿里的 Druid 數(shù)據(jù)庫(kù)連接池
- Apache Druid 具有以下特點(diǎn):
- 亞秒級(jí) OLAP 查詢,包括多維過(guò)濾、Ad-hoc 的屬性分組、快速聚合數(shù)據(jù)等等。
實(shí)時(shí)的數(shù)據(jù)消費(fèi),真正做到數(shù)據(jù)攝入實(shí)時(shí)、查詢結(jié)果實(shí)時(shí)。
高效的多租戶能力,最高可以做到幾千用戶同時(shí)在線查詢。
擴(kuò)展性強(qiáng),支持 PB 級(jí)數(shù)據(jù)、千億級(jí)事件快速處理,支持每秒數(shù)千查詢并發(fā)。
極高的高可用保障,支持滾動(dòng)升級(jí)。
Druid監(jiān)控系統(tǒng)作用
- 查看慢SQL [ 可進(jìn)行對(duì) SQL 優(yōu)化 ]
- 是否有惡意攻擊
- 并發(fā)時(shí)的數(shù)量
- 事務(wù)的提交
- JDBC執(zhí)行的次數(shù)
- 訪問(wèn)時(shí)URL的監(jiān)控
- 請(qǐng)求的次數(shù)等等…
下面是Druid 的監(jiān)控系統(tǒng)首頁(yè)截圖, 只需要簡(jiǎn)單配置就可以使用
開(kāi)始配置
首先創(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)會(huì)使用自帶的 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; /** * 對(duì) Druid 的監(jiān)控配置對(duì)象注入到容器中 * Created by YongXin Xue on 2020/06/04 15:18 */ @Configuration public class DruidConfig { /** * * @return */ @Bean // 當(dāng)前類如果是組件類,對(duì)象創(chuàng)建時(shí)容器也會(huì)調(diào)用此方法將方法的返回值注入到容器中 @ConfigurationProperties(prefix = "spring.datasource") // 加載配置文件中的配置設(shè)置給返回的對(duì)象 public DruidDataSource getDataSoures(){ return new DruidDataSource(); } /** * 配置一個(gè)管理后臺(tái)的Servlet [ 配置Druid的監(jiān)控系統(tǒng) ] * 訪問(wèn)時(shí)默認(rèn)會(huì)生成一個(gè)頁(yè)面 * @return */ @Bean public ServletRegistrationBean statViewServlet() { // 當(dāng)前 Druid 的后臺(tái)監(jiān)控系統(tǒng)的訪問(wèn)地址 /druid/* ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); Map<String, String> initParams = new HashMap<>(); initParams.put("loginUsername", "admin"); initParams.put("loginPassword", "admin"); // 默認(rèn)就是允許所有訪問(wèn) initParams.put("allow", ""); initParams.put("deny", "192.168.15.21");//ip黑名單 bean.setInitParameters(initParams); return bean; } /** * 配置一個(gè)web監(jiān)控的filter:訪問(wèn)靜態(tài)資源一定沒(méi)有sql操作 * @return */ @Bean public FilterRegistrationBean webStatFilter() { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String, String> initParams = new HashMap<>(); //排除過(guò)濾 initParams.put("exclusions", "*.jpg,*.avi,*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; } }
配置完成后, 運(yùn)行主程序在瀏覽器輸入本機(jī)的地址加自己配置的tomcat端口加/druid/既可以打開(kāi)druid的后臺(tái)監(jiān)控系統(tǒng)了
如圖
趕緊來(lái)寫(xiě)兩行代碼測(cè)測(cè)性能吧 !!
總結(jié)
到此這篇關(guān)于使用SpringBoot簡(jiǎn)單了解Druid的監(jiān)控系統(tǒng)的配置方法的文章就介紹到這了,更多相關(guān)springboot druid 監(jiān)控系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot集成阿里巴巴Druid監(jiān)控的示例代碼
- SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實(shí)例
- SpringBoot集成Druid監(jiān)控頁(yè)面最小化配置操作
- SpringBoot對(duì)Druid配置SQL監(jiān)控功能失效問(wèn)題及解決方法
- springboot項(xiàng)目中實(shí)現(xiàn)訪問(wèn)druid內(nèi)置監(jiān)控頁(yè)面
- SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的問(wèn)題解析
- SpringBoot整合Druid實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池和監(jiān)控
- SpringBoot3整合Druid監(jiān)控功能的項(xiàng)目實(shí)踐
- SpringBoot集成Druid實(shí)現(xiàn)監(jiān)控功能的示例代碼
- springboot關(guān)閉druid監(jiān)控 druid2改配置文件無(wú)效的解決
- Springboot整合Druid實(shí)現(xiàn)對(duì)訪問(wèn)的監(jiān)控方式
- SpringBoot+Druid開(kāi)啟監(jiān)控頁(yè)面的實(shí)現(xiàn)示例
相關(guān)文章
Java 17 更新后的 strictfp 關(guān)鍵字
strictfp 可能是最沒(méi)有存在感的關(guān)鍵字了,很多人寫(xiě)了多年 Java 甚至都不知道它的存在,strictfp,字面意思就是嚴(yán)格的浮點(diǎn)型。這玩意兒居然還有個(gè)關(guān)鍵字,可見(jiàn)其地位還是很高的。下面文章小編就帶大家詳細(xì)介紹其關(guān)鍵字,需要的朋友可以參考一下2021-09-09Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析
這篇文章主要介紹了Java實(shí)現(xiàn)單例設(shè)計(jì)模式方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Java數(shù)據(jù)結(jié)構(gòu)之循環(huán)隊(duì)列簡(jiǎn)單定義與用法示例
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之循環(huán)隊(duì)列簡(jiǎn)單定義與用法,簡(jiǎn)要描述了循環(huán)隊(duì)列的概念、原理,并結(jié)合實(shí)例形式分析了java循環(huán)隊(duì)列的定義與使用方法,需要的朋友可以參考下2017-10-10Java數(shù)據(jù)結(jié)構(gòu)BFS廣搜法解決迷宮問(wèn)題
廣搜BFS的基本思想是: 首先訪問(wèn)初始點(diǎn)v并將其標(biāo)志為已經(jīng)訪問(wèn)。接著通過(guò)鄰接關(guān)系將鄰接點(diǎn)入隊(duì)。然后每訪問(wèn)過(guò)一個(gè)頂點(diǎn)則出隊(duì)。按照順序,訪問(wèn)每一個(gè)頂點(diǎn)的所有未被訪問(wèn)過(guò)的頂點(diǎn)直到所有的頂點(diǎn)均被訪問(wèn)過(guò)。廣度優(yōu)先遍歷類似與層次遍歷2022-04-04eclipse創(chuàng)建一個(gè)基于maven的web項(xiàng)目詳細(xì)步驟
開(kāi)始學(xué)習(xí)maven,并用maven創(chuàng)建了第一個(gè)屬于自己的web項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于eclipse創(chuàng)建一個(gè)基于maven的web項(xiàng)目的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12五種SpringBoot實(shí)現(xiàn)數(shù)據(jù)加密存儲(chǔ)的方式總結(jié)
這篇文章主要為大家詳細(xì)介紹了五種常見(jiàn)數(shù)據(jù)加密存儲(chǔ)的方法(結(jié)合SpringBoot和MyBatisPlus框架進(jìn)行實(shí)現(xiàn)),文中的示例代碼講解詳細(xì),需要的可以參考下2023-11-11