Konfigurasi HikariCP pada Spring Boot
Contoh Konfigurasi Standard
SPRING_DATASOURCE_HIKARI_CONNECTION_TIMEOUT=30000
SPRING_DATASOURCE_HIKARI_IDLE_TIMEOUT=600000
SPRING_DATASOURCE_HIKARI_MAX_LIFETIME=1800000
SPRING_DATASOURCE_HIKARI_MAX_POOL_SIZE=20
SPRING_DATASOURCE_HIKARI_MIN_IDLE=5
**Penjelasan Parameter **
**1. CONNECTION_TIMEOUT ** Menentukan berapa lama aplikasi menunggu koneksi tersedia dari pool.
:::info Jika terlalu kecil:
- aplikasi cepat timeout
- request gagal walaupun database masih mampu menangani query Jika terlalu besar:
- user menunggu terlalu lama ketika database bermasalah
- thread aplikasi dapat tertahan lebih lama :::
**2. IDLE_TIMEOUT ** Menentukan kapan koneksi idle akan ditutup.
:::info Jika terlalu kecil:
- koneksi sering dibuat ulang
- performa bisa turun karena overhead reconnect Jika terlalu besar:
- terlalu banyak koneksi idle menggantung di database
- penggunaan resource database meningkat :::
**3. MAX_LIFETIME ** Menentukan umur maksimal koneksi sebelum direfresh.
:::info Jika terlalu kecil:
- koneksi terlalu sering direcycle
- performa dapat menurun Jika terlalu besar:
- risiko stale connection meningkat
- bisa terkena timeout dari firewall/load balancer/database :::
**4. MAX_POOL_SIZE **
Menentukan jumlah maksimum koneksi database dalam pool.
:::info Jika terlalu kecil:
- request harus antre menunggu connection
- throughput aplikasi turun
- sering muncul timeout pool exhausted
Jika terlalu besar:
- database overload
- memory database meningkat drastis
- contention antar query meningkat
- bisa menyebabkan ribuan koneksi terbuka :::
5. MIN_IDLE
Menentukan jumlah minimum koneksi standby.
:::info Jika terlalu kecil:
- aplikasi perlu sering membuat koneksi baru saat traffic naik
- latency awal request meningkat
Jika terlalu besar:
- terlalu banyak koneksi standby tidak terpakai
- resource database terbuang
- dapat menyebabkan connection flood jika nilainya ekstrem :::
:::tip Kesimpulan
Konfigurasi HikariCP harus disesuaikan dengan kapasitas database dan kebutuhan aplikasi. Nilai terlalu kecil dapat menyebabkan bottleneck dan timeout. Nilai terlalu besar dapat menyebabkan overload database dan ribuan koneksi terbuka. :::
Published by Nirantara
Nirantara is an Indonesian Enterprise AI company specializing in Enterprise AI, RAG, Intelligent Search, and AI Automation. Article written by andre.