HikariCP連接池

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了;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章