Druid數據庫連接池解析

1. 概述

Druid是阿里提供的一個高效的數據庫連接池,它可以方便的管理數據庫連接,實現連接複用。Druid具有良好的可擴展性,支持SQL檢查、慢查詢統計等功能。

主流連接池各項功能對比如下:

2. 連接池獲取

Druid連接池的模式是採用生產者-消費者模式,使用ReentrantLock進行同步。連接產生獲取使用異步方式,提交CreateConnectionTask任務創建連接。

在init()方法中會啓動3個線程:

  • LogStatsThread:間隔打印連接池運行狀態
  • CreateConnectionThread:異步創建連接池,通過await()/signal()調度
  • DestroyConnectionThread:調用shrink()清理長久爲使用的連接,檢查連接池連接是否存活狀態。

FilterChainImpl類抽象了一個調用鏈,調用鏈實現了Filter的鏈式調用,以及連接調用鏈代理類。

3. 連接池歸還

DruidPooledConnection關閉連接,會將連接歸還連接池。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章