溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

spring boot中如何配置hikari連接池屬性方式

發(fā)布時(shí)間:2021-10-08 09:56:38 來源:億速云 閱讀:519 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下spring boot中如何配置hikari連接池屬性方式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

    spring boot配置hikari連接池屬性

    事件起因與一個(gè)簡(jiǎn)單應(yīng)用經(jīng)常發(fā)生Young GC,甚至在沒有請(qǐng)求量的情況下也經(jīng)常發(fā)生GC (Allocation Failure),后來使用mat工具進(jìn)行分析,發(fā)現(xiàn)mysql連接相關(guān)的class居然占了40%+堆內(nèi)空間。

    才發(fā)現(xiàn)spring boot的連接池大小沒有配置,默認(rèn)是10個(gè)連接,但實(shí)際上該應(yīng)用不需要這么多。

    The class "com.mysql.cj.jdbc.AbandonedConnectionCleanupThread", 
    loaded by "org.apache.catalina.loader.ParallelWebappClassLoader @ 0xf8dfdf30", 
    occupies 19,279,792 (41.23%) bytes. 
    The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Node[]" 
    loaded by "<system class loader>".

    spring-boot默認(rèn)連接池

    spring-boot中,根據(jù)以下3個(gè)優(yōu)先級(jí)加載連接池

    1)如果classpath中有HikariCP,優(yōu)先選擇它

    2)如果Tomcat pooling 連接池可用,就會(huì)選擇它

    3)如果以上都沒有,則會(huì)選擇Commons DBCP2連接池

    Hikari配置

    這里我們做一個(gè)非常低的配置(這個(gè)僅僅是一個(gè)訪問量非常低的系統(tǒng)),如果默認(rèn)的服務(wù)器,建議使用默認(rèn)配置就足夠了。

    spring.datasource.hikari.maximum-pool-size=2
    spring.datasource.hikari.minimum-idle=1
    spring.datasource.hikari.idle-timeout=600000
    spring.datasource.hikari.max-lifetime=1800000
    spring.datasource.hikari.connection-timeout=500
    spring.datasource.hikari.login-timeout=500
    spring.datasource.hikari.validation-timeout=1000
    spring.datasource.hikari.initialization-fail-timeout=1000

    參考鏈接

    Hikari連接池配置說明

    ## 數(shù)據(jù)庫(kù)配置
    spring.datasource.type=com.zaxxer.hikari.HikariDataSource
    spring.datasource.driverClassName = com.mysql.jdbc.Driver
    spring.datasource.url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false
    spring.datasource.username = root
    spring.datasource.password = root
    ##  Hikari 連接池配置 ------ 詳細(xì)配置請(qǐng)?jiān)L問:https://github.com/brettwooldridge/HikariCP
    ## 最小空閑連接數(shù)量
    spring.datasource.hikari.minimum-idle=5
    ## 空閑連接存活最大時(shí)間,默認(rèn)600000(10分鐘)
    spring.datasource.hikari.idle-timeout=180000
    ## 連接池最大連接數(shù),默認(rèn)是10
    spring.datasource.hikari.maximum-pool-size=10
    ## 此屬性控制從池返回的連接的默認(rèn)自動(dòng)提交行為,默認(rèn)值:true
    spring.datasource.hikari.auto-commit=true
    ## 連接池名稱
    spring.datasource.hikari.pool-name=MyHikariCP
    ## 此屬性控制池中連接的最長(zhǎng)生命周期,值0表示無限生命周期,默認(rèn)1800000即30分鐘
    spring.datasource.hikari.max-lifetime=1800000
    ## 數(shù)據(jù)庫(kù)連接超時(shí)時(shí)間,默認(rèn)30秒,即30000
    spring.datasource.hikari.connection-timeout=30000
    spring.datasource.hikari.connection-test-query=SELECT 1

    以上是“spring boot中如何配置hikari連接池屬性方式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI