SpringBoot Druid 配置詳解

SpringBoot Druid 配置詳解

<code>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/<code>

druid監控數據的外部化調用

<code>@RestController
public class DruidStatController {
@GetMapping("/stat")
public Object druidStat() {
// DruidStatManagerFacade#getDataSourceStatDataList 該方法可以獲取所有數據源的監控數據
return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
}
}/<code>
SpringBoot Druid 配置詳解

趙小胖個人博客


分享到:


相關文章: