- HikariCP數(shù)據(jù)庫(kù)連接池實(shí)戰(zhàn)
- 朱政科
- 706字
- 2019-09-02 17:55:01
第一篇 準(zhǔn)備篇
第1章 阿里中間件實(shí)戰(zhàn),第一個(gè)案例
在應(yīng)用系統(tǒng)開發(fā)過(guò)程中,池化技術(shù),如對(duì)象池、連接池、線程池等被廣泛用來(lái)提升性能,原理是通過(guò)復(fù)用對(duì)象而減少創(chuàng)建、釋放連接的消耗。由于TCP連接的創(chuàng)建開支是昂貴的,數(shù)據(jù)庫(kù)所能承載的TCP并發(fā)連接數(shù)也是有限制的,針對(duì)這種場(chǎng)景,數(shù)據(jù)庫(kù)連接池應(yīng)運(yùn)而生。數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)有很多,如c3p0、DBCP、Druid等,也包括本書將詳細(xì)介紹的、號(hào)稱性能最好的數(shù)據(jù)庫(kù)連接池——HikariCP。
關(guān)于這個(gè)問(wèn)題該從何說(shuō)起呢?按照傳統(tǒng)做法,一開始介紹某個(gè)軟件時(shí),首先應(yīng)該大致介紹它的概念、歷史起源、適用場(chǎng)合、發(fā)展現(xiàn)狀和趨勢(shì)、大致原理、架構(gòu)思路、操作環(huán)境搭建方法等。可是若有人在技術(shù)大會(huì)上介紹這些東西,在一個(gè)20幾頁(yè)的技術(shù)PPT中,有18頁(yè)講概念、兩頁(yè)講實(shí)戰(zhàn)、最后一頁(yè)進(jìn)行答疑FAQ,大都會(huì)讓我昏昏欲睡、失去聽講的耐心。
所以,我決定在這里從一個(gè)有趣的實(shí)例說(shuō)起。在此過(guò)程中,我將告訴你很多和連接相關(guān)的道理,并且讓你對(duì)系統(tǒng)的調(diào)優(yōu)過(guò)程有一點(diǎn)感覺,然后我才能向你展開通常的原理介紹。這個(gè)例子是我在阿里巴巴公司負(fù)責(zé)多年期間對(duì)一款中間件調(diào)優(yōu)的真實(shí)經(jīng)歷,這款中間件做過(guò)全鏈路壓測(cè)、經(jīng)歷過(guò)3年雙十一大促、接入多種監(jiān)控、數(shù)次重構(gòu)改造并修復(fù)等一系列事件。這款中間件是純TCP的,再回首,我并不為當(dāng)年所做的那些TCP性能優(yōu)化感到自豪,相反地,我卻認(rèn)為一款池化的中間件如果提煉出來(lái)則可以更加有利于技術(shù)產(chǎn)品的快速落地及運(yùn)維,進(jìn)而更好地提升研發(fā)效能。
希望讀者通過(guò)體會(huì)這個(gè)小例子可以了解到在沒有池化技術(shù)的情況下TCP調(diào)優(yōu)是如何進(jìn)行的,我相信通過(guò)這個(gè)例子,讀者朋友能理解TCP調(diào)優(yōu)的復(fù)雜性,體會(huì)到池化技術(shù)出現(xiàn)的必然性。數(shù)據(jù)庫(kù)連接池同樣是池化技術(shù),大家也可以深入思考并想象一下數(shù)據(jù)庫(kù)連接池中間件需要解決哪些問(wèn)題。
- 程序員修煉之道:程序設(shè)計(jì)入門30講
- 案例式C語(yǔ)言程序設(shè)計(jì)
- Building a Game with Unity and Blender
- 機(jī)器人Python青少年編程開發(fā)實(shí)例
- Instant Ext.NET Application Development
- 小型編譯器設(shè)計(jì)實(shí)踐
- Photoshop智能手機(jī)APP界面設(shè)計(jì)
- Apache Solr PHP Integration
- .NET 4.0面向?qū)ο缶幊搪劊簯?yīng)用篇
- Python+Office:輕松實(shí)現(xiàn)Python辦公自動(dòng)化
- Akka入門與實(shí)踐
- 百萬(wàn)在線:大型游戲服務(wù)端開發(fā)
- Java并發(fā)實(shí)現(xiàn)原理:JDK源碼剖析
- Spark技術(shù)內(nèi)幕:深入解析Spark內(nèi)核架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理
- 零基礎(chǔ)學(xué)SQL(升級(jí)版)