- PostgreSQL kümesinin durumunu gerçek zamanlı algılamak için tasarlanmış sidecar tipi bir mikroservis
- Ana makinenin erişilebilir olup olmadığı, master/replica ayrımı ve replica gecikmesi anında kontrol edilebilir
- Hafif ve yüksek performanslı yapı: yaklaşık 9MiB bellek kullanımı, istek başına düşük CPU yükü ile saniyede en fazla 9000 istek işleyebilir
- Tüm veriler bellek tabanlı yanıtlar olarak sunulur; böylece istek gecikmesi en aza indirilir
- Arka planda PostgreSQL ana makine durumunu periyodik olarak yoklar ve sonuçları HTTP API üzerinden sunar (Plain/JSON yanıtları)
- Başlıca API endpoint'leri
/master: mevcut master ana makineyi döndürür
/replica: round-robin algoritmasıyla seçilen replica'yı döndürür
/sync_by_time, /sync_by_bytes: zamana veya bayta göre senkronizasyon durumu ölçütüne uyan replica'yı döndürür
/hosts: tüm ana makinelerin durum listesini döndürür (JSON)
/status: belirli bir ana makinenin ayrıntılı durumunu sorgular
- Ortam değişkeni tabanlı yapılandırma: bağlantı zaman aşımı, izin verilen gecikme sınırı, yoklama aralığı gibi değerler ayrıntılı biçimde kontrol edilebilir
- Tek writer ve çok sayıda reader yapısına sahip lock-free tasarım, hızlı okuma yanıtları ve güncel verilerin korunmasını sağlar
- Geçici veri tutarsızlığı olasılığını göze alarak yanıt hızını optimize eder
- Servis başlangıcı/bitişi ve durum değişikliği olaylarını stdout/stderr'ye kaydeder; failover, kurtarma ve senkronizasyon durumu değişimlerini gerçek zamanlı gösterir
- Master-replica geçiş senaryoları proxy tabanlı olarak simüle edilebilir
Henüz yorum yok.