閱讀291 返回首頁    go 阿裏雲 go 技術社區[雲棲]


什麼是連接池,其工作原理是什麼?

連接池用於創建和管理數據庫連接的緩衝池技術,緩衝池中的連接可以被任何需要他們的線程使用。當一個線程需要用JDBC對一個數據庫操作時,將從池中請求一個連接。當這個連接使用完畢後,將返回到連接池中,等待為其他的線程服務。 連接池的主要優點有以下三個方麵。

第一、減少連接創建時間。連接池中的連接是已準備好的、可重複使用的,獲取後可以直接訪問數據庫,因此減少了連接創建的次數和時間。

第二、簡化的編程模式。當使用連接池時,每一個單獨的線程能夠像創建一個自己的JDBC連接一樣操作,允許用戶直接使用JDBC編程技術。

第三、控製資源的使用。如果不使用連接池,每次訪問數據庫都需要創建一個連接,這樣係統的穩定性受係統連接需求影響很大,很容易產生資源浪費和高負載異常。連接池能夠使性能最大化,將資源利用控製在一定的水平之下。連接池能控製池中的連接數量,增強了係統在大量用戶應用時的穩定性。

下麵,簡單的闡述下連接池的工作原理。

連接池技術的核心思想是連接複用,通過建立一個數據庫連接池以及一套連接使用、分配和管理策略,使得該連接池中的連接可以得到高效、安全的複用,避免了數據庫連接頻繁建立、關閉的開銷。

連接池的工作原理主要由三部分組成,分別為連接池的建立、連接池中連接的使用管理、連接池的關閉。

第一、連接池的建立。一般在係統初始化時,連接池會根據係統配置建立,並在池中創建了幾個連接對象,以便使用時能從連接池中獲取。連接池中的連接不能隨意創建和關閉,這樣避免了連接隨意建立和關閉造成的係統開銷。Java中提供了很多容器類可以方便的構建連接池,例如Vector、Stack等。

第二、連接池的管理。連接池管理策略是連接池機製的核心,連接池內連接的分配和釋放對係統的性能有很大的影響。其管理策略是:

當客戶請求數據庫連接時,首先查看連接池中是否有空閑連接,如果存在空閑連接,則將連接分配給客戶使用;如果沒有空閑連接,則查看當前所開的連接數是否已經達到最大連接數,如果沒達到就重新創建一個連接給請求的客戶;如果達到就按設定的最大等待時間進行等待,如果超出最大等待時間,則拋出異常給客戶。 當客戶釋放數據庫連接時,先判斷該連接的引用次數是否超過了規定值,如果超過就從連接池中刪除該連接,否則保留為其他客戶服務。

該策略保證了數據庫連接的有效複用,避免頻繁的建立、釋放連接所帶來的係統資源開銷。

第三、連接池的關閉。當應用程序退出時,關閉連接池中所有的連接,釋放連接池相關的資源,該過程正好與創建相反。

參考:[https://blog.csdn.net/abcd0000/article/details/6803694](https://blog.csdn.net/abcd0000/article/details/6803694)

最後更新:2017-04-03 08:26:26

  上一篇:go ObjectArx學習筆記-創建多段線
  下一篇:go Sql Server中sql語句自動換行