溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的示例分析

發(fā)布時間:2021-08-02 14:17:56 來源:億速云 閱讀:322 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的示例分析”這篇文章吧。

Druid連接池是阿里巴巴開源的數(shù)據(jù)庫連接池項目。Druid連接池為監(jiān)控而生,內(nèi)置強(qiáng)大的監(jiān)控功能,監(jiān)控特性不影響性能。

Druid的監(jiān)控統(tǒng)計功能是通過filter-chain擴(kuò)展實(shí)現(xiàn),采集的信息非常全面,包括SQL執(zhí)行、并發(fā)、慢查、執(zhí)行時間區(qū)間分布等。并且Druid內(nèi)置提供了一個StatViewServlet用于展示Druid的統(tǒng)計信息,提高h(yuǎn)tml頁面展示非常完備的監(jiān)控信息,可以快速診斷系統(tǒng)的瓶頸。

而Druid增加StatFilter之后,能采集大量統(tǒng)計信息,同時對性能基本沒有影響。StatFilter對CPU和內(nèi)存的消耗都極小,對系統(tǒng)的影響可以忽略不計。監(jiān)控不影響性能是Druid連接池的重要特性。

在SpringBoot工程中引入Druid連接池非常簡單。

首先需要引入pom

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.2.6</version>
 </dependency>

在yml中增加一些配置

spring:
  http:
    encoding:
      charset: UTF-8
      force: true
      enabled: true
  datasource:
    url: jdbc:mysql://xxx.xxx.xxx.xxx:3306/database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
    username: root
    password : 123456
    driverClassName : com.mysql.cj.jdbc.Driver
    type : com.alibaba.druid.pool.DruidDataSource
    druid:
      initialSize: 5
      minIdle: 5
      maxActive: 20
      # 配置獲取連接等待超時的時間
      maxWait: 60000
      # 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一個連接在池中最小生存的時間,單位是毫秒
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 打開PSCache,并且指定每個連接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20
      # 配置監(jiān)控統(tǒng)計攔截的filters,去掉后監(jiān)控界面sql無法統(tǒng)計,'wall'用于防火墻
      filters: stat,wall,log4j2
      # 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
      connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      # 合并多個DruidDataSource的監(jiān)控數(shù)據(jù)
      useGlobalDataSourceStat: true
      # StatViewServlet配置 sql監(jiān)控
      stat-view-servlet:
        enabled: true
        url-pattern: "/druid/*"
        reset-enable: false
        login-username: druid
        login-password: druid123
        #允許那些ip
        allow: 127.0.0.1,192.168.120.93
        #禁止那些ip
        deny: 192.168.120.93
    # WebStatFilter配置 web-jdbc關(guān)聯(lián)監(jiān)控
      web-stat-filter:
        enabled: true
        url-pattern: "/*"
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"

配置監(jiān)控頁面訪問密碼,通過設(shè)置login-username 和 login-password這兩個初始參數(shù)。

allow和deny這兩個參數(shù),可以做訪問控制。deny優(yōu)先于allow,如果在deny列表中,就算在allow列表中,也會被拒絕。如果allow沒有配置或者為空,則只允許127.0.0.1訪問。
ip配置格式:<IP>或者 <IP>/<SUB_NET_MASK_size>

啟動服務(wù)后,訪問http://localhost:8080/druid 就可以訪問監(jiān)控頁面。輸入訪問密碼后,可對系統(tǒng)運(yùn)行情況進(jìn)行監(jiān)控。

SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的示例分析

監(jiān)控web-jdbc關(guān)聯(lián)

SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的示例分析

以上是“SpringBoot集成Druid連接池進(jìn)行SQL監(jiān)控的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI