Hikari簡介
後期之秀Hikari
,其實是日語發音,名字翻譯成“光”,號稱目前最快的連接池,是在BoneCP
基礎上進行的修改
目前已被Spring官方推薦並整合
官網:https://github.com/brettwooldridge/HikariCP
使用
POM
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${hikaricp.version}</version>
</dependency>
application.yml
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
username: 用戶名
password: 密碼
url: jdbc:數據庫://IP地址:端口號/數據庫名?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
hikari:
minimum-idle: 5
idle-timeout: 600000
maximum-pool-size: 10
auto-commit: true
pool-name: MyHikariCP
max-lifetime: 1800000
connection-timeout: 30000
connection-test-query: SELECT 1
性能對比
它和前面提到過的連接池另一個連接池Druid
相比,Druid
注重監控,HikariCP
注重速度
速度
穩定性
可靠性
(所有CP都配置了跟connectionTimeout類似的參數爲5秒鐘)
- HikariCP:等待5秒鐘後,如果連接還是沒有恢復,則拋出一個SQLExceptions 異常;後續的getConnection()也是一樣處理;
- C3P0:完全沒有反應,沒有提示,也不會在“CheckoutTimeout”配置的時長超時後有任何通知給調用者;然後等待2分鐘後終於醒來了,返回一個error;
- Tomcat:返回一個connection,然後……調用者如果利用這個無效的connection執行SQL語句……結果可想而知;大約55秒之後終於醒來了,這時候的getConnection()終於可以返回一個error,但沒有等待參數配置的5秒鐘,而是立即返回error;
- BoneCP:跟Tomcat的處理方法一樣;也是大約55秒之後才醒來,有了正常的反應,並且終於會等待5秒鐘之後返回error了;