druid配置

来源:https://www.cnblogs.com/chenshanhai/archive/2020/07/15/13306263.html
-Advertisement-
Play Games

DruidDataSource配置相容DBCP,但個別配置的語意有所區別。 配置 預設值 說明 name 配置這個屬性的意義在於,如果存在多個數據源,監控的時候可以通過名字來區分開來。如果沒有配置,將會生成一個名字,格式是:"DataSource-" + System.identityHashCod ...


DruidDataSource配置相容DBCP,但個別配置的語意有所區別。

配置 預設值 說明
name 配置這個屬性的意義在於,如果存在多個數據源,監控的時候可以通過名字來區分開來。如果沒有配置,將會生成一個名字,格式是:"DataSource-" + System.identityHashCode(this). 另外配置此屬性至少在1.0.5版本中是不起作用的,強行設置name會出錯。詳情-點此處
url 連接資料庫的url,不同資料庫不一樣。例如: mysql : jdbc:mysql://10.20.153.104:3306/druid2 oracle : jdbc:oracle:thin:@10.20.149.85:1521:ocnauto
username 連接資料庫的用戶名
password 連接資料庫的密碼。如果你不希望密碼直接寫在配置文件中,可以使用ConfigFilter。詳細看這裡
driverClassName 根據url自動識別 這一項可配可不配,如果不配置druid會根據url自動識別dbType,然後選擇相應的driverClassName
initialSize 0 初始化時建立物理連接的個數。初始化發生在顯示調用init方法,或者第一次getConnection時

初始bean時配置init方法
maxActive 8 最大連接池數量
(連接池中最多支持多少個活動會話)
maxIdle 8 已經不再使用,配置了也沒效果
minIdle 最小連接池數量
(回收空閑連接時,將保證至少有minIdle個連接.)
maxWait 獲取連接時最大等待時間,單位毫秒。配置了maxWait之後,預設啟用公平鎖,併發效率會有所下降,如果需要可以通過配置useUnfairLock屬性為true使用非公平鎖。
(程式向連接池中請求連接時,超過maxWait的值後,認為本次請求失敗,即連接池沒有可用連接,單位毫秒,設置-1時表示無限等待)
poolPreparedStatements false 是否緩存preparedStatement,也就是PSCache。PSCache對支持游標的資料庫性能提升巨大,比如說oracle。在mysql下建議關閉。
緩存通過以下兩個方法發起的SQL:
public PreparedStatement prepareStatement(String sql)
public PreparedStatement prepareStatement(String sql,int resultSetType, int resultSetConcurrency)
maxPoolPreparedStatementPerConnectionSize -1 要啟用PSCache,必須配置大於0,當大於0時,poolPreparedStatements自動觸發修改為true。在Druid中,不會存在Oracle下PSCache占用記憶體過多的問題,可以把這個數值配置大一些,比如說100
每個連接最多緩存多少個SQL
validationQuery 用來檢測連接是否有效的sql,要求是一個查詢語句,常用select 'x'。如果validationQuery為null,testOnBorrow、testOnReturn、testWhileIdle都不會起作用。
檢查池中的連接是否仍可用的 SQL 語句,druid會連接到資料庫執行該SQL, 如果正常返回,則表示連接可用,否則表示連接不可用
validationQueryTimeout 單位:秒,檢測連接是否有效的超時時間。底層調用jdbc Statement對象的void setQueryTimeout(int seconds)方法
testOnBorrow false 申請連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。
testOnReturn false 歸還連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。
testWhileIdle true 建議配置為true,不影響性能,並且保證安全性。申請連接的時候檢測,如果空閑時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。
keepAlive false (1.0.28) 連接池中的minIdle數量以內的連接,空閑時間超過minEvictableIdleTimeMillis,則會執行keepAlive操作。
程式沒有close連接且空閑時長超過 minEvictableIdleTimeMillis,則會執行validationQuery指定的SQL,以保證該程式連接不會池kill掉,其範圍不超過minIdle指定的連接個數。
timeBetweenEvictionRunsMillis 1分鐘(1.0.14) 有兩個含義: 1) Destroy線程會檢測連接的間隔時間,如果連接空閑時間大於等於minEvictableIdleTimeMillis則關閉物理連接。 2) testWhileIdle的判斷依據,詳細看testWhileIdle屬性的說明
檢查空閑連接的頻率,單位毫秒, 非正整數時表示不進行檢查
numTestsPerEvictionRun 30分鐘(1.0.14) 不再使用,一個DruidDataSource只支持一個EvictionRun
minEvictableIdleTimeMillis 連接保持空閑而不被驅逐的最小時間,單位毫秒
池中某個連接的空閑時長達到 N 毫秒後, 連接池在下次檢查空閑連接時,將回收該連接,要小於防火牆超時設置net.netfilter.nf_conntrack_tcp_timeout_established的設置
maxEvictableIdleTimeMillis
connectionInitSqls 物理連接初始化的時候執行的sql
exceptionSorter 根據dbType自動識別 當資料庫拋出一些不可恢復的異常時,拋棄連接
filters 屬性類型是字元串,通過別名的方式配置擴展插件,常用的插件有: 監控統計用的filter:stat 日誌用的filter:log4j或者 slf4j 防禦sql註入的filter:wall
proxyFilters 類型是List<com.alibaba.druid.filter.Filter>,如果同時配置了filters和proxyFilters,是組合關係,並非替換關係
asyncInit 1.1.4中新增加的配置,如果有initialSize數量較多時,打開會加快應用啟動時間

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是一款可以定製任意windows 解析度的軟體;但是需要底層顯卡驅動的支持,不管是獨立顯卡還是核顯; 通常使用顯卡管理設備也可以定製解析度;但是用這個套件比較方便一點;我在這裡進行備份,方便我下一次可以找到; 工具主頁:https://www.monitortests.com/forum/Thre ...
  • 總結一點,部署tomcat環境,首先要安裝jdk,因為tomcat本身就是java語言編寫,我們要在伺服器上安裝好java程式運行環境和標準類庫等組件,tomcat才可以伺服器上正常的運行起來;其實從上面的演示我們大概也能知道tomcat就是為Java jsp程式提供一個運行環境,後續的jsp代碼... ...
  • 背景:荔枝派nano 運行 RTT (rt-thread) 。 使用 RTT 提供的 bootload 很複雜,編譯 bin 之後需要打包成 ota 包(圖形界面,無法使用 bat 等方式集成操作),才能下載進板子進行更新。 本文描述的 boot 來自於 https://gitee.com/zhan ...
  • 容器是一種輕量級、可移植、自包含的軟體打包技術,使應用程式可以在幾乎任何地方以相同的方式運行。 ...
  • DQL:查詢表中的記錄 * select * from 表名; 1. 語法: select 欄位列表 from 表名列表 where 條件列表 group by 分組欄位 having 分組之後的條件 order by 排序 limit 分頁限定 2. 基礎查詢 1. 多個欄位的查詢 select ...
  • 原文地址:https://www.citusdata.com/blog/2018/03/06/postgres-planner-and-its-usage-of-statistics/,本文統一將原文中的“planner”譯做“優化器” 如果您對Postgres進行了一些性能優化,則可能使用過EXP ...
  • 本文更新於2019-08-18,使用MySQL 5.7,操作系統為Deepin 15.4。 優化SQL語句的步驟 通過SHOW STATUS瞭解SQL語句的執行情況 操作的計數,是對執行次數進行計數,不論提交還是回滾都會累加。 Com_xxx形式的參數表示每個xxx語句執行的次數,對所有的存儲引擎都 ...
  • 數據表中有一列數據,如圖1所示: 圖1數據表 現在需要將該列數據分成三列。 SQL 代碼如下所示: 1、 select max(case when F1%3=1 then F1 else 0 end) a,max(case when F1%3=2 then F1 else 0 end) b,max( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...