資料庫連線池選型 Druid vs HikariCP效能對比
阿新 • • 發佈:2020-10-23
這裡主要比較HikariCP 和阿里的Druid
springboot 現在官方預設的資料庫連線池是 HikariCP,HikariCP的效能從測試的資料上來看也是最高的。
先來看下這個著名的issue
- 一個印度小哥提的 issue
- brettwooldridge 這邊主要針對性能和在中國以外的地方用的少的問題
- 溫紹這邊說,由於使用公平鎖所以降低了效能,至於為什麼是因為在生產環境中遇到的一些問題,使設計使然。
- 溫紹同時也強調我們淘寶體量大,併發高,順便甩了個帶有馬爸爸照片的連結,讓他了解一下淘寶
- brettwooldridge 這邊迴應 :比量是吧?(內心潛臺詞)
- wix.com託管著超過1.09億個網站,每天處理的請求超過10億個
- Atlassian的產品擁有數百萬的客戶
- HikariCP是使用Play框架,Slick,JOOS構建的每個應用的預設連線池
- 老子現在是spring boot的預設連線池
- HikariCP每月從中央Maven儲存庫中解析超過300,000次。
看完熱鬧,說回正題
- 功能角度考慮,Druid 功能更全面,除具備連線池基本功能外,還支援sql級監控、擴充套件、SQL防注入等。最新版甚至有叢集監控
- 單從效能角度考慮,從資料上確實HikariCP要強,但Druid有更多、更久的生產實踐,它可靠。
- 單從監控角度考慮,如果我們有像skywalking、prometheus等元件是可以將監控能力交給這些的 HikariCP也可以將metrics暴露出去。
寫在最後
由於我們的系統架構上有專門用於監控的系統(skywalking、prometheus),外加使用了阿里雲的RDS,RDS也有完整資料庫監控指標。所以我們可以將監控的功能交給這些系統,讓資料庫連線池專心做好連線池的本職工作,所以我們選擇效能更好的 HikariCP 做為資料庫連線池。由於我們使用了Spring boot ,HikariCP 是內建的,也更方便配置使用,能做到開箱即用