Karanlığa düşmemek için tasarlandı.
Her bileşen sıcak çalışır. Aktif ve yedek veritabanı düğümleri sürekli replike olur. Virtual IP kümenin üzerinde uçar — keepalived primary'i izler ve cevap vermediği an, ortalama izleyici buffer'ı fark etmeden trafik standby'a geçer. Bu, bir SaaS'a tutturulmuş Postgres tutorial'ı değildir — operatörünüzün düşünmesi gerekmeyen birinci sınıf altyapıdır.
Üç düğüm, tek doğru.
Aktif/yedek veritabanı çifti özel ağ üzerinden replike olur. nginx load-balancer çifti, aralarında uçan virtual IP için VRRP'ye katılır. Uygulama kümesi, primary taşındığında flush eden ve yeniden deneyen bir connection pool üzerinden okur. Her bağlantı çift yollu.
Saniye saniye ne olur.
Primary düğüm başarısız olduğunda, kurtarma 4 sıralı adımda gerçekleşir. Operatör eylemi: sıfır. Müşteri tarafı kesinti: TCP retransmit'ten kısa.
Kalp atışı kayboldu
Standby'ın keepalived'i primary'in VRRP duyurularını almayı durdurur. 3 ardışık beacon kaçtıktan sonra (~1.5s), standby kendini promote eder.
Promotion + STONITH
Yeni primary eski düğümü fence eder — cloud API üzerinden power-off — ve write kabul eder. Replikasyon yönü tersine döner; kurtarılan düğüm standby olarak yeniden katılır.
Virtual IP göç eder
VRRP virtual IP yeni primary'in NIC'ine taşınır. Uygulama katmanının connection pool'u flush olur; uçuştaki sorgular yeni endpoint'e karşı yeniden denenir.
Kararlı durum
Hizmet restore edildi. Kurtarılan düğüm, erişilebilir olduğunda, sync olur ve sıcak standby olarak katılır. Audit log girdileri yazılır. Operatör tek bir bildirim alır — olay sonrası.