- Sidecar-Microservice, der dafür entwickelt wurde, den Status eines PostgreSQL-Clusters in Echtzeit zu erkennen
- Der Erreichbarkeitsstatus des Hosts, die Unterscheidung zwischen Master und Replica sowie die Replica-Latenz können sofort geprüft werden
- Leichtgewichtige Hochleistungsarchitektur: etwa 9 MiB Speicherverbrauch, geringe CPU-Last pro Anfrage und Verarbeitung von bis zu 9000 Anfragen pro Sekunde
- Alle Daten werden direkt aus dem Speicher beantwortet, um die Anfrageverzögerung zu minimieren
- Im Hintergrund wird der Status der PostgreSQL-Hosts regelmäßig per Polling abgefragt und das Ergebnis über eine HTTP-API bereitgestellt (Plain-/JSON-Antworten)
- Wichtige API-Endpunkte
/master: Gibt den aktuellen Master-Host zurück
/replica: Gibt eine per Round-Robin-Algorithmus ausgewählte Replica zurück
/sync_by_time, /sync_by_bytes: Gibt eine Replica anhand des Synchronisationsstatus nach Zeit oder Byte-Einheiten zurück
/hosts: Liste des Status aller Hosts (JSON)
/status: Detaillierte Statusabfrage für einen bestimmten Host
- Konfiguration auf Basis von Umgebungsvariablen: Feingranulare Steuerung von Connection Timeout, zulässiger Verzögerung und Polling-Intervall
- Lock-free-Design mit einem einzelnen Writer und vielen Readern für schnelle Leseantworten und aktuelle Daten
- Optimiert auf Antwortgeschwindigkeit unter Inkaufnahme möglicher vorübergehender Dateninkonsistenzen
- Ereignisse beim Starten/Beenden des Dienstes und bei Statusänderungen werden auf stdout/stderr protokolliert; Failover, Wiederherstellung und Änderungen des Synchronisationsstatus werden in Echtzeit angezeigt
- Master-Replica-Umschaltszenarien können proxy-basiert simuliert werden
Noch keine Kommentare.