連線池
負責分配,管理和釋放資料庫連線,"允許應用重複使用現有的資料庫連線",而不是建立新的。
核心概念
對於共享資源,有一種設計模式,稱作 資源池(Resource Pool )。
該模式正是為了解決資源頻繁分配、釋放所造成的問題的 。
Connection Pool
原理與實作
為資料庫連線建立一個 "連線緩衝(connection pooling)"。
即預先向資料庫拿取指定的連線數放入緩衝池。
當需要建立連線時,只需從"緩衝池"中取出一個,使用完畢之後再放回去。


優點
資源重用,不需重複地跟DB建立連線然後又釋放掉。
資源分配手段,可設定與DB 最小連線數與最大的連線數,避免超過DB所能負擔的連線數。
Pool 可驗證 Connectin 是否還正常,若不正常時,便再與DB建立好的正常連線, 確保程式取得的Connection都是正常可使用的。
各家連線池
JAVA
C3P0、DBCP、Proxool、Tomcat JDBC Pool、BoneCP、Alibaba Druid、HikariCP。
思考問題
分庫議題 - 線程數(Thread) 過多、連接數過多、連線不能重複使用。
參考資料
https://iter01.com/16624.html https://juejin.im/entry/58fb03220ce4630061233c98
Last updated
Was this helpful?