Kembali ke Beranda
Web Development

Konfigurasi HikariCP pada Spring Boot

Spring Boot menggunakan HikariCP sebagai default JDBC connection pool. HikariCP bertugas mengelola koneksi database agar lebih efisien dan meningkatkan performa aplikasi.

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. :::

hikarispringboot
Nirantara Logo

Published by Nirantara

Nirantara is an Indonesian Enterprise AI company specializing in Enterprise AI, RAG, Intelligent Search, and AI Automation. Article written by andre.

Learn more about Nirantara