日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中连接池

發布時間:2023/12/10 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中连接池 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在看書,其中有一段是:

相信有大佬已經能看得出來這是《企業IT架構轉型之道》這本書了(這是一本不錯的書,推薦工作時長>2年的軟件人員可以看看)~~

對于紅色框內的那段文字,我有兩個概念不是很明白:

1、應用實例指的是什么?

2、連接池是什么?在什么時候發揮作用?以及什么時候被配置上?

帶著疑問,我查閱了大量的資料,也問了大神,大概弄清楚了。

應用實例

應用實例指的是一個應用需要連接數據庫的后臺(如淘寶后臺就是一個應用實例)。

連接池

說到Java中的連接池,我們不可避免的要說到數據庫連接池(connection pool),Java連接池就是數據庫連接池在Java上的應用。

大家都知道,對于資源共享,有一個很有名的設計模式-資源池(Resource Pool)。網絡上對于資源池的解釋是這樣的:

?簡言之,連接池是將已經創建好的連接保存在池中,當檢測到有請求時,直接使用創建好的連接對數據庫進行訪問,這樣可以節省創建連接和銷毀連接所帶來的的時間成本。

在數據庫連接池中,涉及到三個主要的參數:

- 最大維持連接數:沒有任何請求時在連接池中可以存在的連接數

- 最大連接數:連接池中最多可以存在的連接個數。

- 最大等待時間:當斷開連接時,超過最大維持連接數的連接不會馬上銷毀,最大等待時間過后它才會銷毀。

參數使用的場景實例如下:

當最大維持連接數是10,最大連接數是20,最大等待時間是10000(毫秒)時,
訪問數據庫,調用連接池的過程是:最開始在連接池中有10個連接(最大連接數),當有用戶申請連接時,其將一個連接分配用戶,直到連接池中的10個連接全都分配出去。當第11個用戶申請連接時,它將創建第11個連接并分配給該用戶,直到把第20個連接(最大連接數)分配給第20個用戶。
當第21個用戶申請連接時,它需要等待,直到前面的20個用戶中某一個斷開了連接,才會把那個連接分配給第21個用戶,當用戶斷開連接時(第11至20個連接),該連接不會立刻被釋放而是需要等待10000毫秒(最大等待時間),才被釋放,當沒有用戶連接時,連接池內還保持10個連接。

至此,數據庫連接池是什么以及在什么時候發揮作用基本很清楚了。現在來討論下他怎么被配置。

在應用的META-INF文件夾下創建一個context.xml配置文件,并在其中添加<Context>標簽進行配置,但,這種方式生成的數據源只能用于當前應用。

<?xml version="1.0" encoding="utf-8" ?> <Context> <Resource name="jdbc/EmployeeDB" 當前創建數據連接池的名字,自己定義,在使用jndi容器獲取該數據源對象時會用到 auth="Container" 作者 type="javax.sql.DataSource" 對象類型這里固定為DataSource即可 username="dbusername" 數據庫連接的用戶名 password="dbpassword" 連接密碼 driverClassName="com.mysql.jdbc.Driver" 驅動 url="jdbc:mysql:///dbcptest" 數據庫的url maxActive="8" DBCP的參數,DBCP的其他參數可以加入 maxIdle="4"/> </Context>

在tomcat啟動時,會逐個加載其中的應用,當其加載到當前應用時,會加載到 META-INF文件夾下的 context.xml 配置文件,此時tomcat會根據其中的配置信息為當前應用創建一個數據庫連接池,該數據庫連接池只能用于當前應用,tomcat下的其他應用無法使用該數據庫連接池。

附加:雖然數據庫連接池可以幫助我們節省大量的時間成本,但在開發中,使用連接池時若沒有關閉連接(調用連接的close方法)會出現“連接池疲勞的錯誤”。

擴展閱讀

- Java 中幾種主流的數據庫連接池

- 三種數據庫連接池的配置及使用(For JDBC)

- TomCat 源碼分析-線程池應用

- 詳解TomCat的連接數與線程池

-?連接池含義、作用和工作過程(四個流行的Java連接池)

?

轉載于:https://www.cnblogs.com/lilala-world/p/11156771.html

總結

以上是生活随笔為你收集整理的Java中连接池的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。