Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 9693|Jawab: 1

[Sumber] Kumpulan koneksi database Spring Boot Optimasi HikariPool

[Salin tautan]
Dipaparkan pada 2021-11-25 14:55:15 | | | |
Versi Spring-Boot-2.0.0-M1 mengubah kumpulan koneksi database default dari tomcat jdbc pool ke hikari, dan saat menjalankan aplikasi spring boot, konsol menghasilkan yang berikut
2021-11-25 14:48:09.429 INFO 22236 --- [ utama] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Memulai...
2021-11-25 14:48:09.813 INFO 22236 --- [ utama] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Mulai selesai.

Nilai default untuk konfigurasi default Hipari adalah sebagai berikut:
{"connection-timeout":30000,"maximum-pool-size":10,"max-lifetime":1800000,"minimum-idle":10,"validation-timeout":5000,"idle-timeout":600000}

NamaDefault konstruktorKonfigurasi default adalah nilai setelah validasivalidatereset
minIdle-110minIdle<0 atau minIdle>maxPoolSize, diatur ulang ke maxPoolSize
maxUkuran kolam renang-110Jika maxPoolSize kurang dari 1, itu diatur ulang. Ketika minIdle<=0 diatur ulang ke DEFAULT_POOL_SIZE, itu adalah 10; Jika minIdle>0, itu diatur ulang ke nilai minIdle
MaxLifetimeMENIT.keMilis(30) = 18000001800000Jika tidak sama dengan 0 dan kurang dari 30 detik, itu akan diatur ulang kembali ke 30 menit
koneksiBatas waktuDETIK.keMilis(30) = 3000030000Jika kurang dari 250 ms, reset kembali ke 30 detik
validationBatas waktuDETIK.keMilis(5) = 50005000Jika kurang dari 250 ms, reset kembali ke 5 detik
loginBatas waktu1030Math.max(1, (int) MILLISECONDS.toSeconds(500L + connectionTimeout)), yang merupakan maksimum connectionTimeout+500ms untuk mengonversi jumlah detik menjadi keseluruhan dan 1
Batas waktu idleOutMENIT.keMilis(10) = 600000600000Jika idleTimeout+1 detik > maxLifetime dan maxLifetime >0, itu akan diatur ulang ke 0; Jika idleTimeout!=0 dan kurang dari 10 detik, itu diatur ulang ke 10 detik
ambang batas bocorDeteksi bocor00Jika lebih besar dari 0 dan bukan pengujian unit, selanjutnya dinilai bahwa (leakDetectionThreshold < SECONDS.toMillis(2) atau (leakDetectionThreshold > maxLifetime && maxLifetime > 0), akan diatur ulang ke 0. Artinya, jika akan diterapkan, itu harus >0, dan tidak boleh kurang dari 2 detik, dan ketika maxLifetime > 0 jam tidak boleh lebih besar dari maxLifetime
inisialisasiFailTimeout11-
isAutoCommittruetrue-
isReadOnlyfalsefasle-
isAllowPoolSuspensionfalsefalse-
isIsolateInternalQueriesfalsefalse-
isRegisterMbeansfalsefalse-
DisegelfalsetrueBendera ini benar setelah eksekusi dimulai, menunjukkan bahwa modifikasi tidak lagi berjalan
poolNamanolKolam Renang Hikari-1-
katalognolnol-
koneksiInitSqlnolnol-
connectionTestQuerynolnol-
dataSourceClassNamenolnol-
skemanolnol-
transactionIsolationNamenolnol-
Sumber datanolnol-
dataSourceProperties{}{}-
Pabrik benangnolnol-
scheduledExecutornolnol-
metricsPabrik Pelacaknolnol-
metricRegistrynolnol-
kesehatanPeriksaRegistrinolnol-
healthCheckProperties{}{}-

Saat melakukan uji stres, aplikasi dapat melaporkan kesalahan berikut:

Disebabkan oleh: org.springframework.jdbc.CannotGetJdbcConnectionException: Gagal mendapatkan Koneksi JDBC; pengecualian berlapis adalah java.sql.SQLTransientConnectionException: HikariPool-1 - Koneksi tidak tersedia, waktu permintaan habis setelah 30000 milidetik.
        di org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
        di org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
        di org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
        di org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
        di org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86)
        di org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
        di org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
        di org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
        di org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
        di com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
        di org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
        di com.sun.proxy.$Proxy 224.query(Sumber Tidak Dikenal)
        di org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
        ... 114 lainnya
Disebabkan oleh: java.sql.SQLTransientConnectionException: HikariPool-1 - Koneksi tidak tersedia, waktu permintaan habis setelah 30000ms.
        di com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:695)
        di com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:197)
        di com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:162)
        di com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128)
        di org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
        di org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
        di org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
        ... 126 lainnya


Kesalahan:Gagal mendapatkan Koneksi JDBC; pengecualian berlapis adalah java.sql.SQLTransientConnectionException: HikariPool-1 - Koneksi tidak tersedia, waktu permintaan habis setelah 30000ms.

Pengontrol mengeluarkan kode antarmuka konfigurasi HikariDataSource sebagai berikut:

Optimalkan skema, tingkatkan jumlah utas maksimum dan tingkatkan jumlah koneksi yang ditahan diam, dan ubah konfigurasi application.yml sebagai berikut:

(Akhir)




Mantan:Perbedaan antara getLastRowNum() dan getLastCellNum() dalam POI
Depan:Perbandingan alat pengujian LoadRunner dan Jmeter
Dipaparkan pada 2022-12-14 21:46:53 |
Belajar belajar
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com