阿里出品——druid連接池(淘寶,支付寶專用連接池)

阿里出品,淘寶和支付寶專用數據庫連接池,但它不僅僅是一個數據庫連接池,它還包含一個ProxyDriver,一系列內置的JDBC組件庫,一個 SQL Parser。支持所有JDBC兼容的數據庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。Druid針對Oracle和MySql做了特別優化,比如Oracle的PS Cache內存佔用優化,MySql的ping檢測優化。Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,這是一個手寫的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象語法樹很方便。簡單SQL語句用時10微秒以內,複雜SQL用時30微秒。通過Druid提供的SQL Parser可以在JDBC層攔截SQL做相應處理,比如說分庫分表、審計等。Druid防禦SQL注入攻擊的WallFilter就是通過Druid的SQL Parser分析語義實現的。

看上面應該瞭解到功能上druid很厲害。

再說說他們的屬性吧,連接池配置大體可以分為基本配置、關鍵配置、性能配置等主要配置。

基本配置是指連接池進行數據庫連接的四個基本必需配置:

傳遞給JDBC驅動的用於連接數據庫的用戶名、密碼、URL以及驅動類名。

獲取方式:

阿里出品——druid連接池(淘寶,支付寶專用連接池)

基本配置:

阿里出品——druid連接池(淘寶,支付寶專用連接池)

注:在Druid連接池的配置中,driverClassName可配可不配,如果不配置會根據url自動識別dbType(數據庫類型),然後選擇相應的driverClassName。

關鍵配置:為了發揮數據庫連接池的作用,在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的。無論這些數 據庫連接是否被使用,連接池都將一直保證至少擁有這麼多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能佔有的最大連接數,當應用程序向連接池 請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。

最小連接數:

是數據庫一直保持的數據庫連接數,所以如果應用程序對數據庫連接的使用量不大,將有大量的數據庫資源被浪費。

初始化連接數:

連接池啟動時創建的初始化數據庫連接數量。

最大連接數

是連接池能申請的最大連接數,如果數據庫連接請求超過此數,後面的數據庫連接請求被加入到等待隊列中。

最大等待時間:

當沒有可用連接時,連接池等待連接被歸還的最大時間,超過時間則拋出異常,可設置參數為0或者負數使得無限等待(根據不同連接池配置)。


分享到:


相關文章: