1. 程式人生 > 實用技巧 >資料庫連線池選型 Druid vs HikariCP效能對比

資料庫連線池選型 Druid vs HikariCP效能對比

這裡主要比較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 是內建的,也更方便配置使用,能做到開箱即用