最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot Druid配置過程圖解

 更新時間:2020年03月26日 09:31:39   作者:趙小胖0914  
這篇文章主要介紹了SpringBoot Druid配置過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Druid是阿里開源的一個JDBC應(yīng)用組件, 其包括三部分:

  • DruidDriver: 代理Driver,能夠提供基于Filter-Chain模式的插件體系。
  • DruidDataSource: 高效可管理的數(shù)據(jù)庫連接池。
  • SQLParser: 實(shí)用的SQL語法分析

通過Druid連接池中間件, 我們可以實(shí)現(xiàn):

  • 可以監(jiān)控?cái)?shù)據(jù)庫訪問性能,Druid內(nèi)置提供了一個功能強(qiáng)大的StatFilter插件,能夠詳細(xì)統(tǒng)計(jì)SQL的執(zhí)行性能,這對于線上分析數(shù)據(jù)庫訪問性能有幫助。
  • 替換傳統(tǒng)的DBCP和C3P0連接池中間件。Druid提供了一個高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池。
  • 數(shù)據(jù)庫密碼加密。直接把數(shù)據(jù)庫密碼寫在配置文件中,容易導(dǎo)致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。
  • SQL執(zhí)行日志,Druid提供了不同的LogFilter,能夠支持Common-Logging、Log4j和JdkLog,你可以按需要選擇相應(yīng)的LogFilter,監(jiān)控你應(yīng)用的數(shù)據(jù)庫訪問情況。
  • 擴(kuò)展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機(jī)制,很方便編寫JDBC層的擴(kuò)展插件。

配置代碼如下

spring:
 datasource:
  type: com.alibaba.druid.pool.DruidDataSource
  driverClassName: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://${url}:${port}/${數(shù)據(jù)庫名}?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=true
  username: ${username}
  password: ${password}
 druid:
   initial-size: 10 # 初始化時建立物理連接的個數(shù)。初始化發(fā)生在顯示調(diào)用init方法,或者第一次getConnection時
   min-idle: 10 # 最小連接池?cái)?shù)量
   maxActive: 200 # 最大連接池?cái)?shù)量
   maxWait: 60000 # 獲取連接時最大等待時間,單位毫秒。配置了maxWait之后,缺省啟用公平鎖,并發(fā)效率會有所下降,如果需要可以通過配置
   timeBetweenEvictionRunsMillis: 60000 # 關(guān)閉空閑連接的檢測時間間隔.Destroy線程會檢測連接的間隔時間,如果連接空閑時間大于等于minEvictableIdleTimeMillis則關(guān)閉物理連接。
   minEvictableIdleTimeMillis: 300000 # 連接的最小生存時間.連接保持空閑而不被驅(qū)逐的最小時間
   validationQuery: SELECT 1 FROM DUAL # 驗(yàn)證數(shù)據(jù)庫服務(wù)可用性的sql.用來檢測連接是否有效的sql 因數(shù)據(jù)庫方言而差, 例如 oracle 應(yīng)該寫成 SELECT 1 FROM DUAL
   testWhileIdle: true # 申請連接時檢測空閑時間,根據(jù)空閑時間再檢測連接是否有效.建議配置為true,不影響性能,并且保證安全性。申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRun
   testOnBorrow: false # 申請連接時直接檢測連接是否有效.申請連接時執(zhí)行validationQuery檢測連接是否有效,做了這個配置會降低性能。
   testOnReturn: false # 歸還連接時檢測連接是否有效.歸還連接時執(zhí)行validationQuery檢測連接是否有效,做了這個配置會降低性能。
   poolPreparedStatements: true # 開啟PSCache
   maxPoolPreparedStatementPerConnectionSize: 20 #設(shè)置PSCache值
   connectionErrorRetryAttempts: 3 # 連接出錯后再嘗試連接三次
   breakAfterAcquireFailure: true # 數(shù)據(jù)庫服務(wù)宕機(jī)自動重連機(jī)制
   timeBetweenConnectErrorMillis: 300000 # 連接出錯后重試時間間隔
   asyncInit: true # 異步初始化策略
   remove-abandoned: true # 是否自動回收超時連接
   remove-abandoned-timeout: 1800 # 超時時間(以秒數(shù)為單位)
   transaction-query-timeout: 6000 # 事務(wù)超時時間
   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監(jiān)控?cái)?shù)據(jù)的外部化調(diào)用

@RestController
public class DruidStatController {
  @GetMapping("/stat")
  public Object druidStat() {
    // DruidStatManagerFacade#getDataSourceStatDataList 該方法可以獲取所有數(shù)據(jù)源的監(jiān)控?cái)?shù)據(jù)
    return DruidStatManagerFacade.getInstance().getDataSourceStatDataList();
  }
}

圖例

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java 中的volatile關(guān)鍵字

    java 中的volatile關(guān)鍵字

    這篇文章主要介紹了java 中的volatile關(guān)鍵字,volatile在多處理器開發(fā)中保證共享變量的“可見性”??梢娦缘囊馑际钱?dāng)一個線程修改一個共享變量時,另一個一個線程立馬可以讀到這個修改的值。下面我們來看看文章的具體介紹內(nèi)容吧

    2021-12-12
  • 使用FeignClient進(jìn)行微服務(wù)交互方式(微服務(wù)接口互相調(diào)用)

    使用FeignClient進(jìn)行微服務(wù)交互方式(微服務(wù)接口互相調(diào)用)

    這篇文章主要介紹了使用FeignClient進(jìn)行微服務(wù)交互方式(微服務(wù)接口互相調(diào)用),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 詳解Java中的實(shí)例初始化塊(IIB)

    詳解Java中的實(shí)例初始化塊(IIB)

    在本篇文章里我們針對Java中的實(shí)例初始化塊(IIB)做想詳細(xì)分析,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2018-10-10
  • Jeecg-Boot異常處理'jeecg-boot.QRTZ_LOCKS'?doesn't?exist問題

    Jeecg-Boot異常處理'jeecg-boot.QRTZ_LOCKS'?doesn'

    這篇文章主要介紹了Jeecg-Boot異常處理'jeecg-boot.QRTZ_LOCKS'?doesn't?exist問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 淺析對Spring?aware接口理解

    淺析對Spring?aware接口理解

    通過aware接口可以獲取Spring容器相關(guān)信息,但這樣會與Spring容器耦合,這篇文章主要介紹了Spring?aware接口理解,需要的朋友可以參考下
    2022-08-08
  • java開發(fā)之內(nèi)部類的用法

    java開發(fā)之內(nèi)部類的用法

    本篇文章介紹了,java開發(fā)之內(nèi)部類的用法。需要的朋友參考下
    2013-05-05
  • SpringBoot應(yīng)用自定義logback日志詳解

    SpringBoot應(yīng)用自定義logback日志詳解

    默認(rèn)情況下,SpringBoot內(nèi)部使用logback作為系統(tǒng)日志實(shí)現(xiàn)的框架,將日志輸出到控制臺,不會寫到日志文件。本篇文章主要講解下如何自定義logabck.xml以及對logback文件中配置做一個詳解,需要的可以參考一下
    2022-10-10
  • Java實(shí)現(xiàn)對稱加密DES和AES的示例代碼

    Java實(shí)現(xiàn)對稱加密DES和AES的示例代碼

    這篇文章主要介紹了如何使用Java實(shí)現(xiàn)采用對稱密碼算法的應(yīng)用軟件,所用算法包括DES算法和AES算法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-04-04
  • Spring?Boot?應(yīng)用的熱部署配置方法

    Spring?Boot?應(yīng)用的熱部署配置方法

    熱部署,簡單來說,就是代碼修改后不需重啟項(xiàng)目就可自動加載出新的內(nèi)容,這篇文章主要介紹了Spring?Boot?應(yīng)用的熱部署配置?,需要的朋友可以參考下
    2022-11-11
  • java實(shí)現(xiàn)單機(jī)版五子棋

    java實(shí)現(xiàn)單機(jī)版五子棋

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單機(jī)版五子棋源碼,以及五子棋游戲需要的實(shí)現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論

金乡县| 西昌市| 女性| 西昌市| 恩施市| 巩义市| 宁化县| 景宁| 屏边| 牟定县| 博罗县| 礼泉县| 隆安县| 垦利县| 丰台区| 江安县| 页游| 剑川县| 拜泉县| 自治县| 涿州市| 禹城市| 永靖县| 镇沅| 温州市| 榆林市| 扎赉特旗| 巨野县| 竹山县| 阜南县| 福鼎市| 大宁县| 游戏| 西和县| 南江县| 荣昌县| 平和县| 高碑店市| 泊头市| 遂溪县| 苍南县|