Connection Pool Nedir?

İngilizce: Connection Pool

Connection pool, veritabanı veya servis bağlantılarını açık tutup tekrar kullanan, gecikmeyi ve bağlantı yükünü azaltan havuzdur.

Connection Pool Nedir?

Connection pool, uygulamanın her istek için veritabanına sıfırdan bağlanmak yerine önceden açılmış bağlantıları tekrar kullanmasıdır. Bağlantı kurmak kimlik doğrulama, ağ el sıkışması ve sunucu tarafında kaynak ayırma gerektirdiği için yoğun trafikte ciddi maliyet yaratır.

Nasıl Çalışır?

Uygulama başlatıldığında veya ilk istek geldiğinde belirli sayıda bağlantı havuza alınır. Bir işlem gerektiğinde havuzdan boş bağlantı alınır, sorgu çalıştırılır ve bağlantı kapatılmak yerine havuza geri bırakılır. Havuz doluysa yeni istek bekletilebilir, reddedilebilir veya sınıra kadar yeni bağlantı açılabilir.

PostgreSQL gibi veritabanlarında connection pool ayarları uygulama sunucusu sayısıyla birlikte düşünülmelidir. Her replika kendi havuzunu açıyorsa toplam bağlantı sayısı veritabanı limitini hızla aşabilir.

Temel Ayarlar

  • Minimum ve maksimum bağlantı: Boşta kaynak tüketimi ile ani trafik ihtiyacı arasında denge kurar.
  • Idle timeout: Kullanılmayan bağlantıların ne zaman kapatılacağını belirler.
  • Acquire timeout: Havuzdan bağlantı alınamazsa isteğin ne kadar bekleyeceğini sınırlar.
  • Health check: Kopmuş bağlantıların tekrar kullanılmasını önler.

İş Dünyasında Kullanımı

Connection pool, raporlama panelleri, e-ticaret sepetleri ve çok kullanıcılı SaaS uygulamalarında SQL sorgularının daha öngörülebilir çalışmasını sağlar. Yanlış boyutlandırılmış havuz ise veritabanını kilitleyebilir; bu yüzden gerçek trafik, sorgu süresi ve worker sayısı birlikte ölçülmelidir.