連線池學習筆記

2021-09-01 09:39:18 字數 1119 閱讀 2619

資源池(resource pool)

針對共享資源,為了解決資源的頻繁分配和釋放所產生的問題。

連線池基本思想

是為資料庫連線建立乙個快取池。預先在緩衝池放入一定數量的連線,當需要建立資料庫連線時,只需從快取池從取出乙個連線,使用完畢之後放回去。

連線池關鍵問題

1. 併發問題

2. 多資料庫伺服器和多使用者

建立單例模式的連線池管理類,用map《連線池名稱, 連線池物件》管理。

3. 事務處理

all-all-nothing 原則,即對一組sql要麼全做,要麼全不做。

4. 連線池的分配和釋放

空閒池,提供連線給需要連線的程式,存放未被使用的連線,**被使用完的連線。

超過最大連線數要等待一定時間timeout.

5. 連線池的配置和維護

最小連線數是系統啟動時所建立的連線數。如果建立過多,則系統啟動就慢,但建立後系統的響應速度會很快;

如果建立過少,則系統啟動的很快,響應起來就慢。最小連線數在開發時設小一點,伺服器啟動比較快。

連線池實現模型

連線池類(dbconnectionpool)

1. 從連線池獲取或建立可用連線

2. 使用完畢後,把連線返還給連線池

3. 在系統關閉前,斷開所有連線並釋放連線占用的系統資源 

4. 處理無效連線(原來標記為可用,由於某種原因不可用,如超時、通訊等)

5. 限制連線池的連線總數不低於預置的最低連線數和不高於最高連線數

連線池管理類(dbconnectionpoolmanager)

2. 裝載並註冊特定資料庫的jdbc驅動程式

3. 根據配置檔案資訊建立連線池物件

4. 為方便管理多個連線池物件,為每個連線池物件取乙個名字,建立《名稱,物件》map對映

5. 跟蹤客戶的使用連線情況,以便需要時關閉連線釋放資源

druid連線池學習

注 filters 監控 servlet 當前sql 已執行次數 exectime 當前sql 已執行時間 execmax 當前sql 最大執行時間 txn當前執行的事務數量 error 當前sql 執行出錯的數目 update 當前sql 更新或者刪除操作中已經影響的行數 fetchrow 當前s...

JDBC連線池學習

如果不採用連線池技術,將導致不斷建立和銷毀資料庫connection,造成效能上的損耗。而資料庫連線池技術將在池中建立一定數量的connection,當需要connection時就從池中取出乙個,用完之後歸還給連線池,而不是將其銷毀。自定義資料庫連線池的具體步驟分析 a.定義mydatasource...

學習筆記 Jedis連線池的使用

導包 使用方法 1 建立jedis物件 jedis jedis newjedis localhost 6379 2 呼叫方法執行redis指令 每一條指令,都有乙個方法 jedis.set name wzx jedis.sadd mylist aaa bbb ccc string addr jedi...