SpringBoot Druid 配置詳解

SpringBoot Druid 配置詳解

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${url}:${port}/${數據庫名}?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=true
    username: ${username}
    password: ${password}
  druid:
      initial-size: 10 # 初始化時創建物理鏈接的個數。初始化發生在顯示調用init方法,或者第一次getConnection時
      min-idle: 10 # 最小鏈接池數量
      maxActive: 200 # 最大鏈接池數量
      maxWait: 60000 # 獲取鏈接時最大等待時間,單位毫秒。配置了maxWait以後,缺省啓用公平鎖,併發效率會有所降低,若是須要能夠經過配置
      timeBetweenEvictionRunsMillis: 60000 # 關閉空閒鏈接的檢測時間間隔.Destroy線程會檢測鏈接的間隔時間,若是鏈接空閒時間大於等於minEvictableIdleTimeMillis則關閉物理鏈接。
      minEvictableIdleTimeMillis: 300000 # 鏈接的最小生存時間.鏈接保持空閒而不被驅逐的最小時間
      validationQuery: SELECT 1 FROM DUAL # 驗證數據庫服務可用性的sql.用來檢測鏈接是否有效的sql 因數據庫方言而差, 例如 oracle 應該寫成 SELECT 1 FROM DUAL
      testWhileIdle: true # 申請鏈接時檢測空閒時間,根據空閒時間再檢測鏈接是否有效.建議配置爲true,不影響性能,而且保證安全性。申請鏈接的時候檢測,若是空閒時間大於timeBetweenEvictionRun
      testOnBorrow: false # 申請鏈接時直接檢測鏈接是否有效.申請鏈接時執行validationQuery檢測鏈接是否有效,作了這個配置會下降性能。
      testOnReturn: false # 歸還鏈接時檢測鏈接是否有效.歸還鏈接時執行validationQuery檢測鏈接是否有效,作了這個配置會下降性能。
      poolPreparedStatements: true # 開啓PSCache
      maxPoolPreparedStatementPerConnectionSize: 20 #設置PSCache值
      connectionErrorRetryAttempts: 3 # 鏈接出錯後再嘗試鏈接三次
      breakAfterAcquireFailure: true # 數據庫服務宕機自動重連機制
      timeBetweenConnectErrorMillis: 300000 # 鏈接出錯後重試時間間隔
      asyncInit: true # 異步初始化策略
      remove-abandoned: true # 是否自動回收超時鏈接
      remove-abandoned-timeout: 1800 # 超時時間(以秒數爲單位)
      transaction-query-timeout: 6000 # 事務超時時間
      filters: stat,wall,log4j2
      connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
      web-stat-filter:
        enabled: true
        url-pattern: "/*"
        exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
      stat-view-servlet:
        url-pattern: "/druid/*"
        allow:
        deny:
        reset-enable: false
        login-username: admin
        login-password: admin

druid監控數據的外部化調用

@RestController
public class DruidStatController {
    @GetMapping("/stat")
    public Object druidStat() {
        // DruidStatManagerFacade#getDataSourceStatDataList 該方法能夠獲取全部數據源的監控數據
        return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
    }
}

趙小胖我的博客css

相關文章
相關標籤/搜索