1. 程式人生 > >【轉】spring boot使用Druid和監控配置

【轉】spring boot使用Druid和監控配置

Druid是Java語言中最好的資料庫連線池,並且能夠提供強大的監控和擴充套件功能。

Spring Boot預設的資料來源是:org.apache.tomcat.jdbc.pool.DataSource

業界把 Druid 和 HikariCP 做對比後,雖說 HikariCP 的效能比 Druid 高,但是因為 Druid 包括很多維度的統計和分析功能,所以這也是大家都選擇使用它的原因。

下面來說明如何在 spring Boot 中配置使用Druid

整體步驟:

(1)    ——   Druid簡單介紹,具體看官網;

(2)     —— 在pom.xml配置druid依賴包;

(3)    ——  配置application.properties加入資料庫源型別等引數;

(4)     —— 編寫druid servlet和filter提供監控頁面訪問;

(5)     —— 輸入地址進行測試; 

(1)新增Maven依賴 (或jar包)

1 2 3 4 5 < dependency >              < groupId >com.alibaba</ groupId >             
< artifactId >druid</ artifactId >              < version >1.0.18</ version > </ dependency >

(2)、配置資料來源相關資訊

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 # 資料庫訪問配置 # 主資料來源,預設的 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver- class -name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql: //localhost:3306/test spring.datasource.username=root spring.datasource.password= 123456    # 下面為連線池的補充設定,應用到上面所有資料來源中 # 初始化大小,最小,最大 spring.datasource.initialSize= 5 spring.datasource.minIdle= 5 spring.datasource.maxActive= 20 # 配置獲取連線等待超時的時間 spring.datasource.maxWait= 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis= 60000 # 配置一個連線在池中最小生存的時間,單位是毫秒 spring.datasource.minEvictableIdleTimeMillis= 300000 spring.datasource.validationQuery=SELECT  1  FROM DUAL spring.datasource.testWhileIdle= true spring.datasource.testOnBorrow= false spring.datasource.testOnReturn= false # 開啟PSCache,並且指定每個連線上PSCache的大小 spring.datasource.poolPreparedStatements= true spring.datasource.maxPoolPreparedStatementPerConnectionSize= 20 # 配置監控統計攔截的filters,去掉後監控介面sql無法統計, 'wall' 用於防火牆 spring.datasource.filters=stat,wall,log4j # 通過connectProperties屬性來開啟mergeSql功能;慢SQL記錄 spring.datasource.connectionProperties=druid.stat.mergeSql= true ;druid.stat.slowSqlMillis= 5000 # 合併多個DruidDataSource的監控資料 #spring.datasource.useGlobalDataSourceStat= true

需要注意的是:spring.datasource.type舊的spring boot版本是不能識別的

後話1(更新於2016年8月20日):很抱歉的是新版本也廢棄了這個屬性,配置完之後啟動就會報錯,所以現在知道的情況是1.2版本不支援,1.3版本支援,1.4版本不支援。具體資訊可以看連結:http://stackoverflow.com/questions/39032368/not-able-to-set-spring-datasource-type-in-spring-boot-1-4 )

後話2(更新於2016年9月24日):spring boot 1.4.1重新支援了spring.datasource.type屬性,從1.4.0的啟動報異常到1.4.1支援,個人覺得這個應該是官方在升級的時候,影響到了spring.datasource.type屬性的使用。不管怎麼樣,希望spring boot做的越來越好。

這時候啟動應用就可以看到看到列印資訊就是使用我們配置的資料來源了:

[main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

(3) 配置監控統計功能

配置Servlet

如下是在SpringBoot專案中基於註解的配置,如果是web.xml配置,按規則配置即可。

com.kfit.base.servlet.DruidStatViewServlet :

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

相關推薦

spring boot使用Druid監控配置

Druid是Java語言中最好的資料庫連線池,並且能夠提供強大的監控和擴充套件功能。 Spring Boot預設的資料來源是:org.apache.tomcat.jdbc.pool.DataSource 業界把 Druid 和 HikariCP 做對比後,雖說 HikariCP

理解Callable Spring DeferredResult

控制 defer -a word int https .html getc when http://www.cnblogs.com/aheizi/p/5659030.html 1-介紹 Servlet 3中的異步支持為在另一個線程中處理HTTP請求提供了可能性。當

spring cloud eureka 參數配置

lint 客戶 就會 大於 health 微服務 表示 安全 穩定 eureka.client.registry-fetch-interval-seconds 表示eureka client間隔多久去拉取服務註冊信息,默認為30秒,對於api-gateway,如果要迅速獲

springspringMVC的面試問題總結

cat In model 被垃圾回收 自動裝配 完整 包裝 架構 repos 1.Spring中AOP的應用場景、Aop原理、好處? 答:AOP--Aspect Oriented Programming面向切面編程;用來封裝橫切關註點,具體可以在下面的場景中使用: Aut

spring中對控制反轉依賴注入的理解

由於最近沒有太多時間,不能深入的瞭解控制反轉和依賴注入,只好把別人的理解轉載過來,非常痛恨市面上各種教程對所謂的術語張口就來,等自己有了時間一定要寫出新手都能看懂的教程。     首先想說說IoC(Inversion of Control,控制反轉)。這是spring的核心,貫穿始終。所謂IoC

Spring配置sessionFactory及用法(JAVA後端)

編輯 刪除 Spring 中配置sessionFactory及用法 方法一: 1、在Spring的applicationContext.xml中配置bean  <!-- 啟用註解注入  -->       <context:annota

關於LIS一類可以用樹狀數組優化的DP 預備知識

免費 關註 最長上升子序列 2.3 bzoj1264 一個數 long 個數字 等於 原文鏈接 http://www.cnblogs.com/liu-runda/p/6193690.html 預備知識     DP(Dynamic Programming)

Visual C++ C++ 有什麽區別?

業界 流行 編譯器 gtk+ 語言 開發 多種實現 廠商 計算 有位同學問我“Visual C++和C++有什麽區別?”,這的確是初學者會感到困惑的問題,比較常見。除此之外,還有“先學C++好,還是先學Visual C++好?”,都屬於同樣的概念不明的問題,就比

Spring boot 打成jar包問題總結

alt date function get .post stack 問題 chan property http://www.cnblogs.com/xingzc/p/5972488.html 1、Unable to find a single main class

Diamond -- 分布式配置中心

utf content ext end ddr ima jar gin not 特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處:http://www.cnblogs.

jar包war包的介紹區別

lac rep 理解 j2e 浪費時間 需要 適合 格式 nbsp JavaSE程序可以打包成Jar包(J其實可以理解為Java了),而JavaWeb程序可以打包成war包(w其實可以理解為Web了)。然後把war發布到Tomcat的webapps目錄下,Tomcat會在啟

abstract classinterface的區別

其中 帶來 靜態 進行 都沒有 無需 bstr 價值 bastract 在編程語言中,abstract class和interface是支持抽象類定義的兩種機制。abstract class和interface之間在對於抽象類定義的支持方面具有很大的相似性,甚至可以相互替

Spark StreamingKafka整合開發指南

thread ada 關系 方法 拷貝 理解 1.2 reduce arr 基於Receivers的方法 這個方法使用了Receivers來接收數據。Receivers的實現使用到Kafka高層次的消費者API。對於所有的Receivers,接收到的數據將會保存在Spark

Spring MVC系列(五)之自定義數據綁定---HandlerMethodArgumentResolver

開閉 src pat 獲取參數 mvc .net 定義 開閉原則 淺析 介紹 前面幾節我們介紹了Spring MVC的幾種常見的數據綁定的方法,可以靈活地獲取用戶請求中的參數,例如@PathVariable,@ModelAttribute,@RequestPar

document.documentElementdocument.body的區別

指定 absolut root pos absolute 使用 對象 但是 height 網頁中獲取滾動條卷去部分的高度,可以通過 document.body.scrollTop 來獲取,比如使div跟著滾動條滾動: <div id="div" style="wi

Spring Boot幹貨系列:(三)啟動原理解析

無法 time exp 記得 started 打印 ping 正文 exclude 前言 前面幾章我們見識了SpringBoot為我們做的自動配置,確實方便快捷,但是對於新手來說,如果不大懂SpringBoot內部啟動原理,以後難免會吃虧。所以這次博主就跟你們一起一步步揭開

簡述CC++的學習歷程

cnblogs 習慣 使用 模板 服務器 網絡 log 消息 面向對象 簡述C和C++的學習歷程(轉)                                                     ——by:肖舸老師總是被同學們問到,如何學習C和C++才不茫然

setup timehold time的周期問題(slack)

logic 默認 概念理解 CI report -s 不同的 都是 capture 為什麽計算setup time的slack時需要考慮加周期,hold time時不需要? 總結一: 因為計算setup time時,由於存在數據傳輸data delay,Launch edg

Maven項目中將配置文件打包到jar包中

int clas sta 參考 AR blog views red tom 參考博客:http://blog.csdn.net/ciedecem/article/details/10382275 問題: 項目中需要用到從文件中加載json數據,如圖放在co

CA證書申請+IIS配置HTTPS+默認訪問https路徑

網站 加網 剛才 你會 重寫 tin 如果 art 復制 本文非原創,原文地址:https://www.cnblogs.com/lichunting/p/9274422.html 一.CA證書申請 (一). 新StartSSL註冊帳號 1. StartS