欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于druid配置參數(shù)的使用詳解

 更新時(shí)間:2025年06月10日 09:34:39   作者:Java程序員 擁抱ai  
這篇文章主要介紹了關(guān)于druid配置參數(shù)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

druid配置參數(shù)的使用

例子1

spring:
  #數(shù)據(jù)庫(kù)配置
  datasource:
    #這里使用的是德魯伊數(shù)據(jù)庫(kù)連接池
    druid:
      db-type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: 
      username: 
      password: 
      #初始連接數(shù)量
      initial-size: 20
      #最小連接數(shù)量
      min-idle: 20
      #最大連接數(shù)量
      max-active: 1000
      #獲取連接等待超時(shí)的時(shí)間 單位是毫秒,這里配置60秒
      max-wait: 60000
      #查詢超時(shí)時(shí)間 單位是毫秒 這里配置6秒,如果你查詢數(shù)據(jù)量大的情況下這個(gè)配置的大一點(diǎn),不然查詢報(bào)錯(cuò)拋出異常
      query-timeout: 6000
      #事務(wù)發(fā)生回滾后多長(zhǎng)時(shí)間響應(yīng)用戶單位是毫秒,這里這個(gè)時(shí)間和mysql的innodb_lock_wait_timeout是相加的關(guān)系,如果你在mysql配置文件配置了這個(gè)時(shí)間,那時(shí)間就會(huì)相加
      transaction-query-timeout: 2000
      #配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位毫秒, 這里配置10分鐘去檢測(cè)一次是否存在空閑連接
      time-between-eviction-runs-millis: 600000
      #最大等待線程數(shù)量 這里配置50,當(dāng)你的連接滿了之后,其他的連接進(jìn)入等待池子,最大的數(shù)量為50,超過這個(gè)數(shù)量的線程舍棄掉
      max-wait-thread-count: 50
      #最小連接時(shí)間,也就是說一條線程的空閑時(shí)間超過了這個(gè)數(shù)就會(huì)被關(guān)閉,這里的單位是毫秒,這里設(shè)置為10分鐘
      min-evictable-idle-time-millis: 600000
      #最大連接時(shí)間,也就是說一條線程的空閑時(shí)間>最小連接時(shí)間,也>最大連接時(shí)間,直接關(guān)閉 這里設(shè)置為30分鐘
      max-evictable-idle-time-millis: 1800000
      #申請(qǐng)連接時(shí)直接檢測(cè)連接是否有效
      test-on-borrow: true
      #申請(qǐng)連接時(shí)檢測(cè)空閑時(shí)間,根據(jù)空閑時(shí)間再檢測(cè)連接是否有效
      test-while-idle: true
      #歸還連接時(shí)檢測(cè)連接是否有效,這個(gè)配置生產(chǎn)最好不要配置設(shè)置為ture,有性能問題
      test-on-return: true
      #初始連接失敗是否拋出異常
      init-exception-throw: true
      #開啟檢查運(yùn)行的狀態(tài)
      check-execute-time: true
      #這里是健康檢查sql語(yǔ)句,配合下面的使用
      validation-query: SELECT 1 FROM DUAL
      #多長(zhǎng)時(shí)間進(jìn)行一次心跳去檢查是否連接了mysql,這里配置為30分鐘
      validation-query-timeout: 1800000
      #連接出錯(cuò)后在嘗試3次
      connection-error-retry-attempts: 3
      #數(shù)據(jù)庫(kù)宕機(jī)后啟用重連機(jī)制,true表示失敗后立即斷開,false表示失敗后進(jìn)行斷線重連嘗試,配合上面的重連次數(shù)
      break-after-acquire-failure: false
      #重連的間隔 單位毫秒 這里設(shè)置30分鐘重連
      time-between-connect-error-millis: 1800000
      #開啟保持連接有效性
      keep-alive: true
      #只有空閑時(shí)間大于keep-alive-between-time-millis并且小于min-evictable-idle-time-millis該參數(shù)才會(huì)有用,單位為毫秒 這里設(shè)置為15分鐘
      #這個(gè)時(shí)間必須大于檢測(cè)時(shí)間time-between-eviction-runs-millis
      keep-alive-between-time-millis: 900000
      #這個(gè)目前不知道做什么的,字面意思看是殺死什么時(shí)候的讀的socket超時(shí)時(shí)間
      #kill-when-socket-read-timeout:

例子2

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mydb
    username: myuser
    password: mypass
    druid:
      # 連接池初始化時(shí)創(chuàng)建的連接數(shù)。
      # 應(yīng)根據(jù)實(shí)際應(yīng)用場(chǎng)景設(shè)置,確保應(yīng)用程序啟動(dòng)時(shí)即可獲取數(shù)據(jù)庫(kù)連接。
      initial-size: 5
      # 連接池中最小的空閑連接數(shù),保證即使在低負(fù)載時(shí)也有足夠的連接可用。
      min-idle: 5
      # 連接池中最大活動(dòng)連接數(shù),限制并發(fā)請(qǐng)求時(shí)的數(shù)據(jù)庫(kù)連接數(shù),避免過多的連接消耗系統(tǒng)資源。
      max-active: 20
      # 獲取連接時(shí)的最大等待時(shí)間,超過該時(shí)間則拋出異常。單位通常為毫秒。
      max-wait: 60000
      # 兩個(gè)連接檢查之間的時(shí)間間隔,用于檢測(cè)和清理空閑過久的連接。單位為毫秒。
      time-between-eviction-runs-millis: 60000
      # 連接在被清理前的最小空閑時(shí)間。單位為毫秒。
      min-evictable-idle-time-millis: 300000
      # 用于驗(yàn)證連接有效性的 SQL 查詢語(yǔ)句。
      validation-query: SELECT 1 FROM DUAL
      # 如果為真,則連接空閑時(shí)會(huì)被定期測(cè)試有效性。
      test-while-idle: true
      # 如果為真,在獲取連接前進(jìn)行有效性測(cè)試。
      test-on-borrow: false
      # 如果為真,在歸還連接時(shí)進(jìn)行有效性測(cè)試。
      test-on-return: false
      # 是否開啟 PreparedStatement 緩存。
      pool-prepared-statements: true
      # 單個(gè)連接上緩存的 PreparedStatement 最大數(shù)量。
      max-pool-prepared-statement-per-connection-size: 20
      # 指定要啟用的過濾器,如 stat, log4j, wall 等,用于監(jiān)控和日志記錄。
      filters: stat,wall,log4j
      # 連接屬性,例如配置日志級(jí)別或慢 SQL 閾值。
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      # 是否自動(dòng)回收超時(shí)連接
      remove-abandoned: true
      # 超時(shí)時(shí)間,單位秒
      remove-abandoned-timeout: 1800
      # 是否記錄被遺棄的連接
      log-abandoned: true
      # StatViewServlet配置,訪問監(jiān)控頁(yè)面
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: admin
        login-password: admin
        reset-enable: false
      # 防火墻配置
      wall:
        config:
          multi-statement-allow: false

Druid數(shù)據(jù)庫(kù)連接池參數(shù)詳解

基本連接信息

  • druid.datasource.url:數(shù)據(jù)庫(kù)的 URL 地址,這是連接數(shù)據(jù)庫(kù)時(shí)必不可少的配置項(xiàng)。在應(yīng)用與數(shù)據(jù)庫(kù)建立連接的過程中,通過該 URL 指定具體的數(shù)據(jù)庫(kù)實(shí)例,是較為常見且基礎(chǔ)的配置內(nèi)容。
  • druid.datasource.username:數(shù)據(jù)庫(kù)的用戶名,用于驗(yàn)證應(yīng)用訪問數(shù)據(jù)庫(kù)的身份。
  • druid.datasource.password:數(shù)據(jù)庫(kù)的密碼,與用戶名配合使用,確保只有授權(quán)的應(yīng)用才能訪問數(shù)據(jù)庫(kù)。
  • druid.datasource.driverClassName:數(shù)據(jù)庫(kù)驅(qū)動(dòng)類名,它是應(yīng)用與數(shù)據(jù)庫(kù)之間通信的橋梁,指定了連接數(shù)據(jù)庫(kù)所需的驅(qū)動(dòng)程序。

連接池大小相關(guān)參數(shù)

  • druid.initialSize:初始連接池大小。當(dāng)應(yīng)用啟動(dòng)時(shí),Druid 連接池會(huì)依據(jù)此參數(shù)值預(yù)先創(chuàng)建相應(yīng)數(shù)量的數(shù)據(jù)庫(kù)物理連接。這一機(jī)制能夠保證應(yīng)用在首次請(qǐng)求數(shù)據(jù)庫(kù)連接時(shí),能夠迅速獲取已準(zhǔn)備好的連接,有效提升響應(yīng)速度,增強(qiáng)系統(tǒng)性能,避免了在請(qǐng)求到來時(shí)才創(chuàng)建連接所帶來的延遲問題。
  • druid.minIdle:最小連接池大小。Druid 連接池會(huì)定期檢查空閑連接數(shù)量,若當(dāng)前空閑連接數(shù)低于此參數(shù)設(shè)定的值,連接池會(huì)自動(dòng)創(chuàng)建新的連接。即使在系統(tǒng)處于低負(fù)載狀態(tài)時(shí),也能保證有足夠的空閑連接可供快速?gòu)?fù)用,從而在遇到突發(fā)流量時(shí),顯著減少因創(chuàng)建新連接而產(chǎn)生的延遲,提升系統(tǒng)的響應(yīng)速度和穩(wěn)定性。
  • druid.maxActive:最大連接池大小,是連接池配置中的關(guān)鍵參數(shù)。它定義了連接池中允許同時(shí)存在的最大活動(dòng)連接數(shù),即當(dāng)前正在被應(yīng)用程序使用的數(shù)據(jù)庫(kù)連接數(shù)量。一旦達(dá)到這個(gè)上限,后續(xù)的連接請(qǐng)求將會(huì)被阻塞或拒絕,直到有活動(dòng)連接被釋放回連接池。例如,若 maxActive 設(shè)置為 100,則連接池最多能同時(shí)處理 100 個(gè)數(shù)據(jù)庫(kù)操作請(qǐng)求。當(dāng)應(yīng)用程序嘗試打開的連接數(shù)超過該限制時(shí),根據(jù)連接池的具體實(shí)現(xiàn)和配置,可能會(huì)出現(xiàn)等待直到有連接釋放(若設(shè)置了最大等待時(shí)間)、拋出異?;驈膫溆脭?shù)據(jù)源獲取連接等情況。

連接等待與超時(shí)參數(shù)

  • druid.maxWait:等待連接的最大毫秒數(shù),若超過該時(shí)間仍未獲取到連接,則會(huì)拋出異常。此參數(shù)用于控制應(yīng)用程序在連接池已滿的情況下請(qǐng)求數(shù)據(jù)庫(kù)連接時(shí)的最大等待時(shí)長(zhǎng)。合理配置該參數(shù)有助于平衡系統(tǒng)響應(yīng)速度與資源利用率,確保服務(wù)的穩(wěn)定性和良好的用戶體驗(yàn),單位為毫秒。

連接檢測(cè)與清理參數(shù)

  • druid.timeBetweenEvictionRunsMillis:連接空閑多久后檢查其有效性,是連接池執(zhí)行連接檢測(cè)和清理的周期間隔時(shí)間,單位為毫秒。連接池會(huì)按照這個(gè)指定的時(shí)間段對(duì)池中的連接進(jìn)行檢查,依據(jù)配置的測(cè)試條件(如驗(yàn)證查詢 SQL)判斷連接是否有效、空閑時(shí)間是否過長(zhǎng)或滿足其他自定義檢查條件。對(duì)于無效或不再需要的連接,會(huì)將其關(guān)閉并從連接池中移除,以保證連接池中始終是健康、可用的數(shù)據(jù)庫(kù)連接。該參數(shù)對(duì)于維持連接池的高效運(yùn)行和數(shù)據(jù)庫(kù)連接的穩(wěn)定性至關(guān)重要,通過及時(shí)回收問題連接,可有效避免因使用不良連接導(dǎo)致的數(shù)據(jù)庫(kù)操作失敗,提升系統(tǒng)的整體健壯性和性能。同時(shí),需合理設(shè)置該參數(shù),避免檢測(cè)頻率過高而造成不必要的資源消耗。
  • druid.minEvictableIdleTimeMillis:連接在池中最小生存時(shí)間,是連接池配置中的一個(gè)重要參數(shù)。它用于設(shè)定連接在池中空閑的最短時(shí)間,若空閑時(shí)間超過此參數(shù)設(shè)置的值,在下次連接回收檢查時(shí),該連接將會(huì)被移除,單位為毫秒。這意味著即使連接狀態(tài)正常,但如果其空閑時(shí)間過長(zhǎng),超過了設(shè)定值,連接池也會(huì)將其關(guān)閉并移除,從而避免資源浪費(fèi),保持連接池的 “新鮮度”。此參數(shù)通常與 timeBetweenEvictionRunsMillis 配合使用,共同管理連接池中連接的生命周期,確保不會(huì)有過多不必要的連接長(zhǎng)期占用資源。合理設(shè)置這兩個(gè)參數(shù),可有效利用系統(tǒng)資源,提高數(shù)據(jù)庫(kù)訪問效率,并避免因連接閑置過久而引發(fā)的潛在問題。

連接驗(yàn)證相關(guān)參數(shù)

  • druid.testWhileIdle:是否在空閑時(shí)驗(yàn)證連接。若設(shè)置為 true,連接池會(huì)在每次檢查空閑連接時(shí)(按照 timeBetweenEvictionRunsMillis 設(shè)定的周期),執(zhí)行驗(yàn)證查詢或其他檢查手段,以確認(rèn)這些連接是否仍然有效。若連接被判定為失效,會(huì)立即將其從連接池中移除,從而有效防止應(yīng)用程序使用到不可用的數(shù)據(jù)庫(kù)連接。啟用該參數(shù)可以顯著提高應(yīng)用的穩(wěn)定性,因?yàn)樗軌蛱崆鞍l(fā)現(xiàn)并移除那些由于網(wǎng)絡(luò)波動(dòng)、數(shù)據(jù)庫(kù)重啟等原因?qū)е碌牟豢捎眠B接,避免在實(shí)際執(zhí)行數(shù)據(jù)庫(kù)操作時(shí)出現(xiàn)問題。然而,啟用此功能也會(huì)帶來一定的性能開銷,因?yàn)槊總€(gè)檢查周期都需要消耗一定資源來測(cè)試連接的有效性。因此,在設(shè)置該參數(shù)時(shí),需要在維護(hù)連接健康性和系統(tǒng)資源消耗之間進(jìn)行權(quán)衡。
  • druid.testOnBorrow:獲取連接時(shí)是否測(cè)試連接。該參數(shù)決定了在從連接池中借取一個(gè)連接給應(yīng)用程序使用之前,是否需要先進(jìn)行連接有效性測(cè)試。若設(shè)置為 true,每當(dāng)應(yīng)用程序請(qǐng)求一個(gè)連接時(shí),連接池會(huì)先執(zhí)行一次連接測(cè)試,例如執(zhí)行一個(gè)簡(jiǎn)單的 SQL 查詢或預(yù)定義的驗(yàn)證語(yǔ)句,只有通過測(cè)試的連接才會(huì)被分配給應(yīng)用使用。啟用此功能可以有效防止因提供給應(yīng)用的連接已損壞而導(dǎo)致的運(yùn)行時(shí)錯(cuò)誤,提高應(yīng)用程序的健壯性。但同時(shí),這也會(huì)增加每次獲取連接時(shí)的額外延遲,因?yàn)樾枰獔?zhí)行驗(yàn)證操作,尤其在高并發(fā)場(chǎng)景下,可能會(huì)對(duì)性能產(chǎn)生一定影響。
  • druid.testOnReturn:歸還連接時(shí)是否測(cè)試連接。該參數(shù)用于指定當(dāng)應(yīng)用程序使用完數(shù)據(jù)庫(kù)連接并將其歸還到連接池時(shí),是否對(duì)其進(jìn)行連接有效性檢查。若設(shè)置為 true,每次連接歸還到連接池時(shí),連接池都會(huì)執(zhí)行一次驗(yàn)證,以確定該連接的健康狀況。此參數(shù)的主要作用是確保有問題的連接不會(huì)被錯(cuò)誤地放回連接池,避免再次分配出去導(dǎo)致應(yīng)用層的數(shù)據(jù)庫(kù)操作失敗。通過及時(shí)發(fā)現(xiàn)并處理使用過程中可能變得不穩(wěn)定的連接,可維護(hù)連接池的整體健康狀態(tài)。不過,執(zhí)行該測(cè)試同樣會(huì)帶來一定的性能開銷,特別是在連接頻繁獲取和釋放的場(chǎng)景下。因此,是否啟用該參數(shù)應(yīng)根據(jù)實(shí)際應(yīng)用場(chǎng)景的需求和性能考量來決定,對(duì)于對(duì)數(shù)據(jù)庫(kù)連接即時(shí)可靠性要求嚴(yán)格的系統(tǒng),該參數(shù)可能更為適用。

過濾器相關(guān)參數(shù)

  • druid.filters:?jiǎn)⒂玫倪^濾器,例如監(jiān)控(StatFilter)和 SQL 防火墻(WallFilter)等。該參數(shù)是 Druid 數(shù)據(jù)庫(kù)連接池配置中用于指定啟用哪些過濾器的部分。這些過濾器作為插件,能夠增強(qiáng)連接池的功能,實(shí)現(xiàn)性能監(jiān)控、日志記錄、安全防護(hù)等多種功能。通過合理配置不同的過濾器組合,可以優(yōu)化連接池管理和數(shù)據(jù)庫(kù)訪問,提升系統(tǒng)的安全性和問題診斷能力,提高系統(tǒng)運(yùn)維效率。

統(tǒng)計(jì)相關(guān)參數(shù)

  • druid.stat.sql.maxSize:記錄 SQL 最大長(zhǎng)度,是 Druid 連接池中的一個(gè)配置項(xiàng)。它用于限制記錄到統(tǒng)計(jì)信息中的 SQL 語(yǔ)句的最大長(zhǎng)度。當(dāng) SQL 語(yǔ)句的長(zhǎng)度超過此配置值時(shí),Druid 的統(tǒng)計(jì)模塊將不會(huì)完整記錄該 SQL 語(yǔ)句,可能會(huì)進(jìn)行截?cái)嗷虿挥涗洠员苊庹加眠^多內(nèi)存資源。在處理大量長(zhǎng) SQL 或復(fù)雜查詢的應(yīng)用場(chǎng)景中,合理配置該參數(shù)有助于在保持?jǐn)?shù)據(jù)庫(kù)訪問統(tǒng)計(jì)信息的同時(shí),有效管理內(nèi)存使用,平衡統(tǒng)計(jì)需求與系統(tǒng)資源的合理利用。
  • druid.stat.mergeSql:是否合并相同 SQL 的統(tǒng)計(jì)。當(dāng)設(shè)置為 true 時(shí),Druid 會(huì)自動(dòng)識(shí)別并合并具有相同結(jié)構(gòu)(忽略參數(shù)值差異)的 SQL 語(yǔ)句統(tǒng)計(jì)信息,這對(duì)于存在大量參數(shù)化查詢的應(yīng)用非常實(shí)用。這樣做可以減少統(tǒng)計(jì)條目的數(shù)量,使監(jiān)控界面和統(tǒng)計(jì)報(bào)告更加簡(jiǎn)潔清晰,同時(shí)降低內(nèi)存消耗。若設(shè)置為 false,Druid 會(huì)分別統(tǒng)計(jì)每個(gè)帶有不同參數(shù)的 SQL 變體。該配置有助于優(yōu)化統(tǒng)計(jì)分析的效率和易讀性。

SQL 防火墻相關(guān)參數(shù)

  • druid.wall.filter.config.file:WallFilter 的配置文件路徑,是 Druid 連接池中關(guān)于 SQL 防火墻(Wall Filter)的一個(gè)配置項(xiàng)。它用于指定 SQL 防火墻配置文件的位置,允許用戶通過外部 XML 或 properties 文件來自定義 SQL 防火墻的行為,詳細(xì)設(shè)定哪些 SQL 操作應(yīng)該被允許或禁止,例如是否允許刪除操作、修改表結(jié)構(gòu)等,從而增強(qiáng)數(shù)據(jù)庫(kù)的安全防護(hù)能力。當(dāng)設(shè)置該參數(shù)后,Druid 的 Wall Filter 會(huì)在初始化時(shí)加載指定文件中的配置規(guī)則,執(zhí)行更細(xì)致的 SQL 安全策略檢查,如阻止?jié)撛诘?SQL 注入攻擊、限制危險(xiǎn)的 SQL 操作等。通過外部配置文件,管理員可以靈活調(diào)整安全策略,而無需直接修改代碼或連接池的基本配置,提高了系統(tǒng)的可維護(hù)性和安全性。

連接遺棄相關(guān)參數(shù)

  • druid.logAbandoned:是否記錄被遺棄的連接,是 Druid 數(shù)據(jù)庫(kù)連接池的一個(gè)配置屬性。當(dāng)設(shè)置為 true 時(shí),如果應(yīng)用程序未能正確關(guān)閉數(shù)據(jù)庫(kù)連接,導(dǎo)致連接在超時(shí)后被連接池回收,Druid 會(huì)將這些未正常關(guān)閉的連接信息記錄到日志中。這有助于開發(fā)者發(fā)現(xiàn)并修復(fù)程序中存在的未關(guān)閉連接的資源泄露問題,避免潛在的連接池耗盡風(fēng)險(xiǎn)和性能下降,增強(qiáng)對(duì)連接使用情況的監(jiān)控和問題排查能力。
  • druid.removeAbandoned:是否自動(dòng)回收超時(shí)連接,用于指示是否自動(dòng)移除被應(yīng)用程序遺棄的數(shù)據(jù)庫(kù)連接。當(dāng)設(shè)置為 true 時(shí),Druid 連接池會(huì)定期檢查是否存在超時(shí)且未被正確關(guān)閉的連接(即應(yīng)用程序打開后未關(guān)閉的連接),并將這些遺棄的連接從連接池中移除。這一機(jī)制可有效防止因程序疏忽未關(guān)閉連接而導(dǎo)致的連接泄漏,避免連接池資源耗盡,保障數(shù)據(jù)庫(kù)訪問的穩(wěn)定性和系統(tǒng)整體性能。合理配置該參數(shù)有助于有效管理數(shù)據(jù)庫(kù)資源。
  • druid.removeAbandonedTimeout:超時(shí)時(shí)間,單位為秒。該參數(shù)用于設(shè)置識(shí)別和移除遺棄連接的超時(shí)時(shí)間閾值。當(dāng) druid.removeAbandoned 設(shè)置為 true 時(shí),Druid 會(huì)監(jiān)控連接的使用情況。若某個(gè)連接被 Checkout(從連接池取出)后,空閑時(shí)間超過了該參數(shù)指定的時(shí)長(zhǎng),且未被歸還到連接池,Druid 會(huì)認(rèn)定該連接被遺棄,并依據(jù)此配置自動(dòng)移除它。該設(shè)置有助于及時(shí)回收不再使用的連接資源,防止資源泄露,確保連接池的高效運(yùn)行和系統(tǒng)的穩(wěn)定性。

監(jiān)控界面相關(guān)參數(shù)

  • druid.stat-view-servlet.enabled=true:?jiǎn)⒂?Druid 連接池的監(jiān)控 Servlet 功能。當(dāng)設(shè)置為 true 后,可通過 Web 界面查看 Druid 提供的數(shù)據(jù)庫(kù)連接池統(tǒng)計(jì)信息,包括活躍連接數(shù)、線程池狀態(tài)、SQL 執(zhí)行情況等,這對(duì)于監(jiān)控和診斷應(yīng)用的數(shù)據(jù)庫(kù)訪問性能非常有幫助。設(shè)置該參數(shù)后,還需根據(jù)其他相關(guān)配置(如 URL 路徑、登錄憑證等)來訪問 Druid 的監(jiān)控頁(yè)面。
  • druid.stat-view-servlet.url-pattern=/druid/*:該配置項(xiàng)指定了 Druid 監(jiān)控界面的訪問 URL 路徑模式。通過訪問應(yīng)用中以 /druid 開頭的任何 URL,均可進(jìn)入 Druid 提供的數(shù)據(jù)庫(kù)連接池統(tǒng)計(jì)信息界面。例如,可通過http://yourdomain.com/druid或類似地址查看監(jiān)控?cái)?shù)據(jù)。此設(shè)置便于控制和訪問 Druid 的監(jiān)控功能,同時(shí)與應(yīng)用其他部分的路徑區(qū)分開來。
  • druid.stat-view-servlet.login-username=admin:監(jiān)控界面的登錄用戶名。
  • druid.stat-view-servlet.login-password=pwd:監(jiān)控界面的登錄密碼。
  • druid.stat-view-servlet.allow=127.0.0.1,192.168.1.0/24:該配置項(xiàng)用于指定允許訪問 Druid 監(jiān)控界面的 IP 地址或 IP 地址段。通過設(shè)置該參數(shù),可限制只有列表中的 IP 地址才能訪問 Druid 提供的數(shù)據(jù)庫(kù)連接池統(tǒng)計(jì)信息,增強(qiáng)安全性。若未設(shè)置或?yàn)榭眨碚撋夏J(rèn)允許所有 IP 訪問(具體行為可能因 Druid 的默認(rèn)安全策略而異)。正確的設(shè)置方式是填寫具體的 IP 或 IP 范圍,如 druid.stat-view-servlet.allow=192.168.1.0/24,10.0.0.5,這樣只有來自這些 IP 的請(qǐng)求才能成功訪問監(jiān)控頁(yè)面。
  • druid.stat-view-servlet.deny=0.0.0.0/0:表示拒絕所有 IP 地址訪問 Druid 的監(jiān)控界面。其中 0.0.0.0/0 是一個(gè)通配符,代表所有 IPv4 地址。設(shè)置此配置后,任何來源的 IP 地址都無法通過網(wǎng)絡(luò)訪問 Druid 提供的數(shù)據(jù)庫(kù)連接池統(tǒng)計(jì)信息頁(yè)面,這是一種非常嚴(yán)格的訪問控制策略,通常用于徹底關(guān)閉公網(wǎng)或不希望任何外部訪問的環(huán)境中的監(jiān)控接口。需注意,若同時(shí)配置了 allow 和 deny,通常 deny 規(guī)則優(yōu)先執(zhí)行。
  • druid.stat-view-servlet.reset-enable=false:該配置項(xiàng)表示禁用 Druid 監(jiān)控界面中的 “Reset All” 功能。默認(rèn)情況下,該功能通常是啟用的,允許用戶通過 Web 界面手動(dòng)重置所有的統(tǒng)計(jì)信息。但當(dāng)將 reset-enable 設(shè)置為 false 時(shí),監(jiān)控界面將不再顯示重置按鈕,從而有效防止因誤操作導(dǎo)致寶貴的監(jiān)控?cái)?shù)據(jù)被清空,這對(duì)于需要保留歷史統(tǒng)計(jì)信息以便分析的場(chǎng)景尤為重要。

根據(jù)業(yè)務(wù)實(shí)際情況合理配置 Druid 數(shù)據(jù)庫(kù)連接池參數(shù),能夠顯著提升應(yīng)用的數(shù)據(jù)庫(kù)訪問性能和穩(wěn)定性。開發(fā)者應(yīng)依據(jù)實(shí)際業(yè)務(wù)需求和系統(tǒng)資源狀況,對(duì)上述參數(shù)進(jìn)行細(xì)致調(diào)整,以實(shí)現(xiàn)最佳效果。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論