SpringBoot引入Druid數(shù)據(jù)源監(jiān)控

一办绝、引言

Druid是Java語言中最好的數(shù)據(jù)庫連接池蔗崎。Druid能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能约素。
Druid內(nèi)置提供了一個(gè)StatViewServlet用于展示Druid的統(tǒng)計(jì)信息书释。
因?yàn)榘⒗锇桶烷_源了druid連接池源碼拇囊,我們可以通過maven倉庫可以獲得jar包依賴硅急。
訪問mvnrepository.com/artifact/com.alibaba/druid選擇1.0.29覆享,點(diǎn)擊進(jìn)入后復(fù)制maven內(nèi)容到pom.xml內(nèi)即可

二、實(shí)現(xiàn)

1营袜、引入依賴
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.29</version>
        </dependency>
2撒顿、包結(jié)構(gòu)展示如下
3、配置 Druid 數(shù)據(jù)源
server:
  port: 9090
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3308/user_test?useUnicode=true&useSSL=false&amp;characterEncoding=UTF-8

    #配置監(jiān)控統(tǒng)計(jì)攔截的 filters,去掉后監(jiān)控界面sql無法統(tǒng)計(jì)荚板,'wall'用于防火墻
    filters: stat, wall
    #最大活躍數(shù)
    maxActive: 20
    #初始化數(shù)量
    initialSize: 1
    #最大連接等待超時(shí)時(shí)間
    maxWait: 60000
    #打開PSCache凤壁,并且指定每個(gè)連接PSCache的大小
    poolPreparedStatements: true
    maxPoolPreparedStatementPerConnectionSize: 20
    #通過connectionProperties屬性來打開mergeSql功能;慢SQL記錄
    #connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
    minIdle: 1
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: select 1 from dual
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false

jpa:
  database: MySQL
  show-sql: true
  format_sql: true
  hibernate:
   naming_strategy: org.hibernate.cfg.ImprovedNamingStrategy
4跪另、Configuration 包中編寫 druid 監(jiān)控類
package com.ly.springbootjpa.configuration;

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 javax.sql.DataSource;

/**
 * druid 監(jiān)控
 */
@Configuration
public class DruidConfiguration {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid(){
        return new DruidDataSource();
    }

    /**
     * druid 數(shù)據(jù)源狀態(tài)監(jiān)控
     * @return
     */
    @Bean
    public ServletRegistrationBean statViewServlet(){
        //創(chuàng)建servlet注冊(cè)實(shí)體
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        //設(shè)置ip白名單
        servletRegistrationBean.addInitParameter("allow","127.0.0.1");
        //設(shè)置ip黑名單拧抖,如果allow與deny共同存在時(shí),deny優(yōu)先于allow
        servletRegistrationBean.addInitParameter("deny","192.168.0.19");
        //設(shè)置控制臺(tái)管理用戶
        servletRegistrationBean.addInitParameter("loginUsername","druid");
        servletRegistrationBean.addInitParameter("loginPassword","123456");
        //是否可以重置數(shù)據(jù)
        servletRegistrationBean.addInitParameter("resetEnable","false");
        return servletRegistrationBean;
    }

    /**
     * druid 過濾器
     * @return
     */
    @Bean
    public FilterRegistrationBean statFilter(){
        //創(chuàng)建過濾器
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        //設(shè)置過濾器過濾路徑
        filterRegistrationBean.addUrlPatterns("/*");
        //忽略過濾的形式
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }
}
5、登錄監(jiān)控中心 (用戶名:druid 密碼:123456)
6免绿、在監(jiān)控中心中查看各種信息

當(dāng)執(zhí)行不同的 方法操作后會(huì)對(duì)于不同的監(jiān)控信息記錄
監(jiān)控中心說明如下:

名稱 作用
數(shù)據(jù)源 可以看到項(xiàng)目中管理的所有數(shù)據(jù)源配置的詳細(xì)情況唧席,除了密碼沒有顯示外其他都在
SQL監(jiān)控 可以查看所有的執(zhí)行sql語句
SQL防火墻 druid提供了黑白名單的訪問,可以清楚的看到sql防護(hù)情況
Web應(yīng)用 可以看到目前運(yùn)行的web程序的詳細(xì)信息
URI監(jiān)控 可以監(jiān)控到所有的請(qǐng)求路徑的請(qǐng)求次數(shù)、請(qǐng)求時(shí)間等其他參數(shù)
Session監(jiān)控 可以看到當(dāng)前的session狀況淌哟,創(chuàng)建時(shí)間迹卢、最后活躍時(shí)間、請(qǐng)求次數(shù)徒仓、請(qǐng)求時(shí)間等詳細(xì)參數(shù)
JSONAPI 通過api的形式訪問Druid的監(jiān)控接口婶希,api接口返回Json形式數(shù)據(jù)

參考鏈接:http://www.reibang.com/p/28b4889b5f20

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蓬衡,隨后出現(xiàn)的幾起案子喻杈,更是在濱河造成了極大的恐慌,老刑警劉巖狰晚,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筒饰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡壁晒,警方通過查閱死者的電腦和手機(jī)瓷们,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秒咐,“玉大人谬晕,你說我怎么就攤上這事⌒。” “怎么了攒钳?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長雷滋。 經(jīng)常有香客問我不撑,道長,這世上最難降的妖魔是什么晤斩? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任焕檬,我火速辦了婚禮,結(jié)果婚禮上澳泵,老公的妹妹穿的比我還像新娘实愚。我一直安慰自己,他們只是感情好兔辅,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布腊敲。 她就那樣靜靜地躺著,像睡著了一般幢妄。 火紅的嫁衣襯著肌膚如雪兔仰。 梳的紋絲不亂的頭發(fā)上茫负,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天蕉鸳,我揣著相機(jī)與錄音,去河邊找鬼。 笑死潮尝,一個(gè)胖子當(dāng)著我的面吹牛榕吼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勉失,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼羹蚣,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了乱凿?” 一聲冷哼從身側(cè)響起顽素,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎徒蟆,沒想到半個(gè)月后胁出,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡段审,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年全蝶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寺枉。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抑淫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姥闪,到底是詐尸還是另有隱情始苇,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布筐喳,位于F島的核電站埂蕊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏疏唾。R本人自食惡果不足惜蓄氧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望槐脏。 院中可真熱鬧喉童,春花似錦、人聲如沸顿天。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牌废。三九已至咽白,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸟缕,已是汗流浹背晶框。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工排抬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人授段。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓蹲蒲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親侵贵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子届搁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 在大型業(yè)務(wù)系統(tǒng)上線后,為了保證系統(tǒng)能夠更好地持續(xù)穩(wěn)定運(yùn)行窍育,及時(shí)發(fā)現(xiàn)各種故障(代碼缺陷卡睦、SQL性能問題、服務(wù)器CPU...
    Java_Explorer閱讀 2,289評(píng)論 1 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理漱抓,服務(wù)發(fā)現(xiàn)么翰,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 到現(xiàn)在為止辽旋,(5:20) 今天的課算是上完了浩嫌。 此刻,非常喜歡禮拜二的課补胚。 真的是開闊眼界的一天码耐。 音樂課,老師講...
    SU吶閱讀 257評(píng)論 0 0
  • 早點(diǎn)休息溶其,迎接明天的挑戰(zhàn)骚腥,加油,一定過關(guān)瓶逃。
    幸福在夢(mèng)里閱讀 130評(píng)論 0 0
  • 你還記得小時(shí)候街邊小巷傳來的陣陣燒餅的味道嗎束铭?不如大家一起來試試自己動(dòng)手做做青汁煎餅吧,追隨記憶里那個(gè)懷念的味道厢绝,...
    深山果農(nóng)_我的天然良倉閱讀 204評(píng)論 0 0