dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Terimler Sözlüğü/Connection Pool
Connection PoolArchitecture & Connectivity

Connection Pool (Bağlantı Havuzlayıcı / Proxy Katmanı)

İstemcilerin sürekli yeni bağlantı açıp kapatma (handshake ve fork) maliyetini ortadan kaldırmak için açık veritabanı bağlantılarını önceden oluşturup yeniden kullandıran mimari yazılım katmanıdır.

Derin Mimari İncelemesi

Bağlantı havuzlama iki düzeyde kurgulanır:

  1. 1Uygulama İçi Havuzlar (HikariCP, Node pg-pool): Uygulama thread'lerinin veritabanı soketlerini yerel process içinde paylaşmasını sağlar.
  2. 2Merkezi Proxy Havuzlayıcılar (PgBouncer, Odyssey): Yüzlerce uygulama pod'unun binlerce istemci soketini toplayıp az sayıda kararlı veritabanı backend'ine çoğullar.

PgBouncer'ın transaction pooling modu, sunucu bağlantısını oturum yerine yalnızca tek bir SQL transaction'ı süresince tahsis eder. Bağlantı tasarrufu iş yükünün aktif/boşta çalışma oranına (duty cycle) bağlıdır: kısa transaction'lar çalıştıran ve zamanının çoğunu boşta geçiren servislerde veritabanı backend ihtiyacı katbekat azalırken, sürekli uzun transaction çalıştıran iş yüklerinde tasarruf oranı düşer.

İPUCU
Mimari İnceleme: İki katmanlı havuzlama modelleri ve boyutlandırma formülleri için inceleyin: PostgreSQL Bağlantı Yönetimi: Bağlantı Yaşam Döngüsü, Kapasite ve Havuzlama.

Üretim Gözlem ve Tanı Sorguları

PostgreSQL
SELECT count(*) AS total_backends FROM pg_stat_activity WHERE backend_type = 'client backend'; -- PgBouncer admin denetimi: SHOW POOLS; SHOW CLIENTS;
MySQL
-- İstemci havuzu denetimi uygulama JMX metrikleri (HikariCP ActiveConnections/TotalConnections) veya ProxySQL stats_mysql_connection_pool üzerinden izlenir.