Bilgi Bankası
MongoDBOlay ve bakım 13 dk 14.06.2026

MongoDB replica set election: primary değişince uygulama neden etkilenir?

MongoDB replica set primary değiştirirken kısa bir kararsızlık penceresi oluşabilir. Veritabanı tasarımı doğru olsa bile uygulama driver ayarları, timeout ve retry davranışı uygun değilse kullanıcı bunu hata olarak görür.

Bu yazı sana şu durumda yardımcı olur
  • primary değişimi sırasında server selection timeout görülüyor
  • uygulama birkaç saniye yazma yapamıyor
  • driver eski primary’ye bağlanmaya çalışıyor
  • retryable writes açık mı bilinmiyor
  • failover testi yapılmadığı için gerçek etki ölçülmedi
Yazıyı bitirince

MongoDB election sürecinin uygulamayı nasıl etkilediğini, hangi driver ayarlarının önemli olduğunu ve failover sonrası hangi kontrolleri yapmanız gerektiğini anlayacaksınız.

TürkDB açısından ürünleşme notu

Bu bölüm, TürkDB’nin ilgili problemi hangi ürün ilkeleri ve kontrol noktalarıyla ele alacağını anlatır. Kapsam, gerçek iş yükü ve ihtiyaçla birlikte netleşir.

TürkDB MongoDB için cluster durumu, olay akışı ve bağlantı bilgisini görünür kılmayı hedefler. Primary değişimi sırasında uygulamanın driver davranışı ise mutlaka gerçek trafik veya kontrollü testle doğrulanmalıdır.

Election kısa sürse bile uygulama hissedebilir

MongoDB replica set içinde primary erişilemez olduğunda veya bakım için değiştiğinde election süreci başlar. Yeni primary seçilene kadar yazma işlemleri kısa süreli başarısız olabilir.

Bu pencere çoğu zaman saniyelerle ölçülür; ama uygulama timeout değerleri çok kısa, retry davranışı zayıf veya bağlantı havuzu yanlış kurulmuşsa kullanıcı tarafında daha büyük etki yaratır.

  • Okuma ve yazma davranışı ayrı değerlendirilmelidir.
  • Driver replica set topolojisini doğru bilmelidir.
  • serverSelectionTimeoutMS değeri gerçek beklentiye göre ayarlanmalıdır.
  • Retry davranışı idempotent olmayan işlemlerde dikkatle ele alınmalıdır.

Bağlantı dizesi doğru topolojiyi anlatmalı

Uygulama yalnızca tek node adresiyle bağlanıyorsa primary değişiminde toparlanma zayıflayabilir. Replica set üyeleri ve replicaSet parametresi bağlantı dizesinde doğru yer almalıdır.

Managed veya self-hosted fark etmez; driver’ın topolojiyi görebilmesi gerekir. Aksi halde veritabanı tarafı sağlıklı olsa bile uygulama yanlış kapıyı çalmaya devam edebilir.

Replica set bağlantı dizesi örneği

mongodb-replicaset-uri.txt
mongodb://app_user:***@mongo-0.example:27017,mongo-1.example:27017,mongo-2.example:27017/app?replicaSet=rs0&retryWrites=true&w=majority

Write concern kararını uygulama etkisiyle birlikte verin

w: majority daha güçlü dayanıklılık sinyali verir; ama gecikme ve failover anındaki davranışı etkileyebilir. w: 1 daha hızlı olabilir ama primary düşüşü sırasında son yazıların riski artabilir.

Bu karar teknik olduğu kadar ürün kararıdır. Sepet görüntüleme ile ödeme onayı aynı write concern seviyesine ihtiyaç duymayabilir.

Failover sonrası kontrol listesi

Primary değişimi test edildikten sonra yalnızca MongoDB durumuna bakmayın. Uygulama hata oranı, yazma gecikmesi, bağlantı havuzu, tekrar denenen işlemler ve kullanıcı etkisi birlikte okunmalıdır.

Testin sonucu “failover oldu” değil, “uygulama şu kadar süre etkilendi ve şu işlemler güvenle toparlandı” olmalıdır.

MongoDB primary kontrolü

mongodb-primary-check.js
rs.status().members.map(function(member) {
  return {
    name: member.name,
    stateStr: member.stateStr,
    optimeDate: member.optimeDate
  }
})
Devam etmek istersen

Sorunu motor bazında derinleştirin

Benzer belirtiler farklı motorlarda farklı nedenlere dayanır; yayınlanan tüm rehberleri ana sayfadan takip edebilirsiniz.

Tüm makaleler