網站數據庫連接池作用及配置;
連接池用于創建和管理數據庫連接的緩沖池技術,緩沖池中的連接可以被任何需要他們的線程使用。當一個線程需要用JDBC對一個數據庫操作時,將從池中請求一個連接。當這個連接使用完畢后,將返回到連接池中,等待為其他的線程服務。
連接池的主要優點有以下三個方面。
1、減少連接創建時間。連接池中的連接是已準備好的、可重復使用的,獲取后可以直接訪問數據庫,因此減少了連接創建的次數和時間。
2、簡化的編程模式。當使用連接池時,每一個單獨的線程能夠像創建一個自己的JDBC連接一樣操作,允許用戶直接使用JDBC編程技術。
3、控制資源的使用。如果不使用連接池,每次訪問數據庫都需要創建一個連接,這樣系統的穩定性受系統連接需求影響很大,很容易產生資源浪費和高負載異常。連接池能夠使性能大化,將資源利用控制在一定的水平之下。連接池能控制池中的連接數量,增強了系統在大量用戶應用時的穩定性。
下面,簡單的闡述下連接池的工作原理。
連接池技術的核心思想是連接復用,通過建立一個數據庫連接池以及一套連接使用、分配和管理策略,使得該連接池中的連接可以得到高效、安全的復用,避免了數據庫連接頻繁建立、關閉的開銷。
連接池的工作原理主要由三部分組成,分別為連接池的建立、連接池中連接的使用管理、連接池的關閉。
1、連接池的建立。一般在系統初始化時,連接池會根據系統配置建立,并在池中創建了幾個連接對象,以便使用時能從連接池中獲取。連接池中的連接不能隨意創建和關閉,這樣避免了連接隨意建立和關閉造成的系統開銷。Java中提供了很多容器類可以方便的構建連接池,例如Vector、Stack等。
2、連接池的管理。連接池管理策略是連接池機制的核心,連接池內連接的分配和釋放對系統的性能有很大的影響。
其管理策略是:當客戶請求數據庫連接時,首先查看連接池中是否有空閑連接,如果存在空閑連接,則將連接分配給客戶使用;如果沒有空閑連接,則查看當前所開的連接數是否已經達到大連接數,如果沒達到就重新創建一個連接給請求的客戶;如果達到就按設定的大等待時間進行等待,如果超出大等待時間,則拋出異常給客戶。
當客戶釋放數據庫連接時,先判斷該連接的引用次數是否超過了規定值,如果超過就從連接池中刪除該連接,否則保留為其他客戶服務。
該策略保證了數據庫連接的有效復用,避免頻繁的建立、釋放連接所帶來的系統資源開銷。
3、連接池的關閉。當應用程序退出時,關閉連接池中所有的連接,釋放連接池相關的資源,該過程正好與創建相反。
數據庫連接池的作用以及配置;
連接池是創建和管理多個連接的一種技術,這些連接可被需要使用它們的任何線程使用。連接池技術基于下述事實:對于大多數應用程序,當它們正在處理通常需要數毫秒完成的事務時,僅需要能夠訪問JDBC連接的1個線程。未處理事務時,連接處于閑置狀態。使用連接池,允許其他線程使用閑置連接來執行有用的任務。
事實上,當某一線程需要用JDBC在MySQL或其他數據庫上執行操作時,需要用到由連接池提供的連接。使用連接完成線程后,線程會將連接返回給連接池,以便該連接能夠被其他需要使用連接的線程使用。從連接池“借出”連接時,該連接僅供請求它的線程使用。從編程觀點看,其效果等同于每次需要JDBC連接時調用DriverManager.getConnection(),但是,采用連接池技術,可通過使用新的或已有的連接結束線程。連接池技術能顯著增加Java應用程序的性能,同時還能降低資源使用率。
連接池技術的主要優點包括:
(1) 縮短了連接創建時間
創建新的JDBC連接會導致聯網操作和一定的JDBC驅動開銷,如果這類連接是“循環”使用的,使用該方式,可避免這類不利因素。
(2)簡化的編程模型
使用連接池技術時,每個單獨線程能夠像創建了自己的JDBC連接那樣進行操作,從而允許使用直接的JDBC編程技術。
(3)受控的資源使用
如果不使用連接池技術,而是在每次需要時為線程創建新的連接,那么應用程序的資源使用將十分浪費,而且在負載較重的情況下會導致無法預期的結果。
注意,與數據庫的每個連接均會在客戶端和服務器端造成一定的開銷(CPU、關聯轉換等)。
每個連接均會對應用程序和數據庫服務器的可用資源帶來一定的限制。無論連接是否執行任何有用的任務,仍將使用這些資源中的相當一部分。
連接池能夠使性能大化,同時還能將資源利用控制在一定的水平之下,如果超過該水平,應用程序將崩潰而不僅僅是變慢。幸運的是,Sun公司通過JDBC-2.0“可選”接口,完成了JDBC中連接池概念的標準化實施,所有主要應用服務器均實施了能夠與MySQL Connector/J一起良好工作的
這類API。
通常,你可以在應用服務器的配置文件中配置連接池,并通過Java命名和目錄接口(JNDI)訪問它。
使用連接池時需要牢記的最重要事項是,無論在代碼中出現了什么(異常、控制流等),連接以及由連接創建的任何部分(語句、結果集等)均應被關閉,以便能再次使用它們。如不然,它們將糾纏在一起,在最好的情況下,意味著它們所代表的數據庫服務器資源(緩沖區、鎖定、套接字等)可能會捆綁一段時間,在最壞的情況下,可能會導致永久捆綁。
連接池的好大小是什么?
取決于具體情況。盡管好大小取決與預期的負載和平均的數據庫事務時間,好的連接池大小小于你的預期。
例如,如果使用的是Sun公司的Java Petstore Blueprint應用程序,對于包含15~20個連接的連接池,使用MySQL和Tomcat,在可接受的相應時間下,可服務于中等程度的負載(600個并發用戶)。
要想確定用于應用程序的連接池大小,應使用諸如Apache Jmeter或The Grinder等工具創建負載測試腳本,并對應用程序進行負載測試。確定出
發點的一種簡單方法是,將連接池的大連接數配置為“無限”,運行負載測試,并測量大的并發連接數。隨后,應進行反向操作,確定出使應
用程序具有好性能的連接池的最小和大值。
連接池與數據源區別?
數據庫連接池是在應用程序啟動時建立足夠的數據庫連接,并將這些連接組
成一個連接池,由應用程序動態地對池中的連接進行申請、使用和釋放。
對于多于連接池中連接數的并發請求,應在請求隊列中排隊等待。并且應用程序可根據池中連接的使用率,動態增加或減少池中的連接數。當關閉連接操作時,連接并不真正的關閉,而是返回到連接池中作為空閑連接在后面繼續使用,連接池技術解決了數據庫連接頻繁打開關閉所帶來的性能問題。
有了連接池,我們沒必要直接找數據源打交道了,連接池在你的程序所在的機器內存,數據源不一定,并且數據源和連接池會保持一定數量
的連接,這樣我們訪問數據庫的時候就不需要找數據源要連接,直接在本地內存中取得連接,可以提高程序的性能。連結池的存在是為了效率,因為實例化一個連接很耗費資源,而連接又有可重用的特征,所以可以把一定數量的連接放在連接池里面以提高效率。
分享標題:網站數據庫連接池作用及配置
分享網址:http://m.newbst.com/news/144139.html
成都網站建設公司_創新互聯,為您提供動態網站、微信公眾號、App設計、面包屑導航、手機網站建設、品牌網站設計
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯