Sorunun Belirtileri
- API isteklerinde zaman aşımı hataları
Connection refusedveyaConnection timeouthataları- Veritabanı sorgularının başarısız olması
- Yüksek sayıda connection pool hatası
- Pod’ların veritabanına bağlanamaması
Sorunun Nedenleri
Veritabanı bağlantı sorunları genellikle şu faktörlerden kaynaklanabilir:- Ağ Bağlantısı Sorunları: Pod’ların veritabanına erişememesi
- Connection Pool Tükenmesi: Maksimum connection sayısına ulaşılması
- Veritabanı Sunucu Sorunları: Veritabanı sunucusunun yanıt vermemesi
- Yanlış Bağlantı Ayarları: Hatalı host, port veya credentials
- Firewall Kuralları: Ağ güvenlik kurallarının bağlantıyı engellemesi
- DNS Çözümleme Sorunları: Veritabanı host adının çözülememesi
Tespit Yöntemleri
1. Log Analizi
1
Log Dosyalarını Kontrol Et
Veritabanı bağlantı hatalarını log dosyalarında arayın:
2. Bağlantı Testi
1
Pod'a Bağlan
Pod içinden veritabanı bağlantısını test edin:
3. Connection Pool Metrikleri
Connection pool metriklerini izleyin:
- Aktif connection sayısı
- Bekleyen connection sayısı
- Connection timeout sayısı
- Connection pool kullanım yüzdesi
Çözüm Önerileri
1. Bağlantı Ayarlarını Kontrol Etme
Veritabanı bağlantı ayarlarını kontrol edin:- Host: Veritabanı sunucu adresi doğru mu?
- Port: Port numarası doğru mu?
- Database Name: Veritabanı adı doğru mu?
- Username/Password: Kimlik bilgileri doğru mu?
- Connection String: Connection string formatı doğru mu?
2. Connection Pool Ayarlarını Optimize Etme
Connection pool ayarlarını optimize edin:
Öneriler:
maximum-pool-size: Maksimum connection sayısını ayarlayınminimum-idle: Minimum idle connection sayısını belirleyinconnection-timeout: Bağlantı timeout süresini ayarlayınidle-timeout: Idle connection’ların kapatılma süresini belirleyin
3. Ağ Bağlantısını Kontrol Etme
Ağ bağlantısını kontrol edin:4. Veritabanı Sunucu Durumunu Kontrol Etme
Veritabanı sunucu durumunu kontrol edin:- Veritabanı sunucusu çalışıyor mu?
- Yeterli kaynak (CPU, RAM) var mı?
- Maksimum connection limit’ine ulaşılmış mı?
- Veritabanı log’larında hata var mı?
5. Firewall Kurallarını Kontrol Etme
Firewall kurallarını kontrol edin:- Pod’ların veritabanı port’una erişimi var mı?
- Network policy’ler bağlantıyı engelliyor mu?
- Security group kuralları doğru mu?
6. DNS Çözümleme Sorunlarını Çözme
DNS çözümleme sorunlarını çözün:- CoreDNS pod’ları çalışıyor mu?
- DNS ayarları doğru mu?
- Service discovery düzgün çalışıyor mu?
Önleyici Tedbirler
1. Connection Pool Monitoring
- Connection pool metriklerini düzenli izleyin
- Alert’ler kurarak erken uyarı alın
- Connection pool kullanımını optimize edin
2. Health Check’ler
- Veritabanı health check’lerini yapılandırın
- Liveness ve readiness probe’ları ayarlayın
- Otomatik failover mekanizmaları kurun
3. Connection Retry Mekanizması
- Connection retry mekanizması ekleyin
- Exponential backoff kullanın
- Maksimum retry sayısını belirleyin

