- HikariCP數據庫連接池實戰
- 朱政科
- 6字
- 2019-09-02 17:55:01
第一篇 準備篇
第1章 阿里中間件實戰,第一個案例
在應用系統開發過程中,池化技術,如對象池、連接池、線程池等被廣泛用來提升性能,原理是通過復用對象而減少創建、釋放連接的消耗。由于TCP連接的創建開支是昂貴的,數據庫所能承載的TCP并發連接數也是有限制的,針對這種場景,數據庫連接池應運而生。數據庫連接池的實現有很多,如c3p0、DBCP、Druid等,也包括本書將詳細介紹的、號稱性能最好的數據庫連接池——HikariCP。
關于這個問題該從何說起呢?按照傳統做法,一開始介紹某個軟件時,首先應該大致介紹它的概念、歷史起源、適用場合、發展現狀和趨勢、大致原理、架構思路、操作環境搭建方法等。可是若有人在技術大會上介紹這些東西,在一個20幾頁的技術PPT中,有18頁講概念、兩頁講實戰、最后一頁進行答疑FAQ,大都會讓我昏昏欲睡、失去聽講的耐心。
所以,我決定在這里從一個有趣的實例說起。在此過程中,我將告訴你很多和連接相關的道理,并且讓你對系統的調優過程有一點感覺,然后我才能向你展開通常的原理介紹。這個例子是我在阿里巴巴公司負責多年期間對一款中間件調優的真實經歷,這款中間件做過全鏈路壓測、經歷過3年雙十一大促、接入多種監控、數次重構改造并修復等一系列事件。這款中間件是純TCP的,再回首,我并不為當年所做的那些TCP性能優化感到自豪,相反地,我卻認為一款池化的中間件如果提煉出來則可以更加有利于技術產品的快速落地及運維,進而更好地提升研發效能。
希望讀者通過體會這個小例子可以了解到在沒有池化技術的情況下TCP調優是如何進行的,我相信通過這個例子,讀者朋友能理解TCP調優的復雜性,體會到池化技術出現的必然性。數據庫連接池同樣是池化技術,大家也可以深入思考并想象一下數據庫連接池中間件需要解決哪些問題。
推薦閱讀
- 大學計算機基礎(第二版)
- 軟件項目管理(第2版)
- 零起步玩轉掌控板與Mind+
- Java虛擬機字節碼:從入門到實戰
- Windows Phone 7.5:Building Location-aware Applications
- Getting Started with LLVM Core Libraries
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- MySQL入門很輕松(微課超值版)
- Android驅動開發權威指南
- Kubernetes源碼剖析
- Vue.js應用測試
- 物聯網系統架構設計與邊緣計算(原書第2版)
- HTML5 WebSocket權威指南
- MySQL數據庫教程(視頻指導版)
- Building Scalable Apps with Redis and Node.js