See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 9693|Vastuse: 1

[Allikas] Spring Boot andmebaasi ühenduse bassein HikariPool optimeerimine

[Kopeeri link]
Postitatud 2021-11-25 14:55:15 | | | |
Spring-Boot-2.0.0-M1 versioon muudab vaikimisi andmebaasiühenduse basseini tomcat jdbc basseinist hikari peale ning kui käivitatakse spring boot rakendus, väljastab konsool järgmise
2021-11-25 14:48:09.429 INFO 22236 --- [põhiline] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Alustan...
2021-11-25 14:48:09.813 INFO 22236 --- [põhi] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Alustamine lõpetatud.

Hikari vaikimisi konfiguratsiooni vaikimisi väärtused on järgmised:
{"connection-timeout":30000,"maximum-pool-size":10,"max-lifetime":1800000,"minimum-idle":10,"validation-timeout":5000,"idle-timeout":600000}

NimiKonstruktori vaikimisiVaikimisi konfiguratsioon on väärtus pärast valideerimistvalidatereset
minIdle-110minIdle<0 või minIdle>maxPoolSize, see lähtestatakse maxPoolSize peale
maxPoolSize-110Kui maxPoolSize on väiksem kui 1, siis see lähtestatakse. Kui minIdle<=0 lähtestatakse DEFAULT_POOL_SIZE-le, on see 10; Kui minIdle>0, siis see lähtestub väärtusele minIdle
maxLifetimeMINUTID.toMillis(30) = 18000001800000Kui see ei ole null ja alla 30 sekundi, lähtestatakse see tagasi 30 minutile
connectionTimeoutSEKUNDID.Millis(30) = 3000030000Kui see on alla 250 ms, lähtestatakse see tagasi 30 sekundile
validationTimeoutSEKUNDID.toMillis(5) = 50005000Kui see on alla 250 ms, lähtestatakse see tagasi 5 sekundile
loginTimeout1030Math.max(1, (int) MILLISECONDS.toSeconds(500L + connectionTimeout)), mis on connectionTimeout+500ms maksimaalne ühendus, et teisendada sekundite arv tervikuks ja 1
idleTimeoutMINUTID.toMillis(10) = 600000600000Kui idleTimeout+1 sekundit > maxLifetime ja maxLifetime >0, lähtestatakse see 0-le; Kui idleTimeout!=0 ja vähem kui 10 sekundit, lähtestatakse see 10 sekundile
LeakDetection Threshold00Kui see on suurem kui 0 ja mitte ühiktest, siis hinnatakse veel, et (leakDetectionThreshold < SECONDS.toMillis(2) või (leakDetectionThreshold > maxLifetime && maxLifetime > 0), lähtestatakse 0-le. See tähendab, et kui see peaks jõustuma, peab see olema >0 ja ei tohi olla vähem kui 2 sekundit, ning kui maxLifetime > 0 tundi ei saa olla suurem kui maxEluiga
initsialisatsioonFailTimeout11-
isAutoCommittruetrue-
isReadOnlyfalseFasle-
isAllowPoolSuspensionfalsefalse-
isIsolateInternalQueriesfalsefalse-
isRegisterMbeansfalsefalse-
suletudfalsetrueSee lipp kehtib pärast jooksu algust, mis näitab, et modifikatsioon enam ei tööta
basseininiminullHikariPool-1-
Katalooginullnull-
connectionInitSqlnullnull-
connectionTestQuerynullnull-
dataSourceClassNamenullnull-
Skeeminullnull-
transactionIsolationNamenullnull-
andmeallikasnullnull-
dataSourceProperties{}{}-
threadFactorynullnull-
scheduledExecutornullnull-
metricsTrackerFactorynullnull-
metricRegistrynullnull-
healthCheckRegistrynullnull-
healthCheckProperties{}{}-

Stressitesti läbiviimisel võib rakendus teatada järgmistest vigadest:

Põhjustas: org.springframework.jdbc.CannotGetJdbcConnectionException: Ebaõnnestus saada JDBC ühendust; pesastatud erand on java.sql.SQLTransientConnectionException: HikariPool-1 - Ühendus pole saadaval, päring on ajastatud pärast 30000 ms.
        aadressil org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
        aadressil org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
        aadressil org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
        aadressil org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
        aadressil org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
        aadressil org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
        aadressil org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
        aadressil org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
        aadressil org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
        aadressil com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
        aadressil org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
        aadressil com.sun.proxy.$Proxy 224.query(Tundmatu allikas)
        aadressil org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
        ... Veel 114
Põhjustatud: java.sql.SQLTransientConnectionException: HikariPool-1 - Ühendus ei ole saadaval, päring on ajastatud pärast 30000 ms.
        aadressil com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)
        aadressil com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:197)
        aadressil com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162)
        aadressil com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128)
        aadressil org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
        aadressil org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
        aadressil org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
        ... Veel 126


Viga:Ei õnnestunud saada JDBC ühendust; pesastatud erand on java.sql.SQLTransientConnectionException: HikariPool-1 - Ühendus pole saadaval, päring ajastatud pärast 30000 ms.

Kontroller väljastab HikariDataSource konfiguratsiooniliidese koodi järgmiselt:

Optimeerige skeem, suurendage maksimaalset lõimede arvu ja suurendage tühikäigul hoitud ühenduste arvu ning muutke application.yml konfiguratsiooni järgmiselt:

(Lõpp)




Eelmine:Erinevus getLastRowNum() ja getLastCellNum() vahel POI-des
Järgmine:Testimisvahendite LoadRunner ja Jmeter võrdlus
Postitatud 2022-12-14 21:46:53 |
Õpi õppima
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com