連線池
Last updated
Was this helpful?
Last updated
Was this helpful?
對於共享資源,有一種設計模式,稱作 資源池(Resource Pool )。
該模式正是為了解決資源頻繁分配、釋放所造成的問題的 。
為資料庫連線建立一個 "連線緩衝(connection pooling)"。
即預先向資料庫拿取指定的連線數放入緩衝池。
當需要建立連線時,只需從"緩衝池"中取出一個,使用完畢之後再放回去。
資源重用,不需重複地跟DB建立連線然後又釋放掉。
資源分配手段,可設定與DB 最小連線數與最大的連線數,避免超過DB所能負擔的連線數。
Pool 可驗證 Connectin 是否還正常,若不正常時,便再與DB建立好的正常連線, 確保程式取得的Connection都是正常可使用的。
C3P0、DBCP、Proxool、Tomcat JDBC Pool、BoneCP、Alibaba Druid、HikariCP。
分庫議題 - 線程數(Thread) 過多、連接數過多、連線不能重複使用。