- Microservice de type sidecar conçu pour détecter en temps réel l’état d’un cluster PostgreSQL
- Permet de vérifier immédiatement la disponibilité d’un hôte, s’il s’agit du master ou d’un replica, ainsi que le délai de réplication
- Architecture légère et performante : environ 9 MiB de mémoire utilisée, avec une faible charge CPU par requête, pour traiter jusqu’à 9 000 requêtes par seconde
- Toutes les données sont fournies via des réponses en mémoire, afin de minimiser la latence des requêtes
- Interroge périodiquement en arrière-plan l’état des hôtes PostgreSQL et expose les résultats via une API HTTP (réponses en texte brut/JSON)
- Principaux endpoints de l’API
/master : renvoie l’hôte master actuel
/replica : renvoie un replica sélectionné via un algorithme round-robin
/sync_by_time, /sync_by_bytes : renvoient un replica selon l’état de synchronisation en temps ou en octets
/hosts : liste l’état de tous les hôtes (JSON)
/status : affiche l’état détaillé d’un hôte donné
- Configuration via variables d’environnement : contrôle fin de paramètres comme le timeout de connexion, la limite de retard autorisée ou encore la fréquence de polling
- Conception lock-free avec un seul writer et plusieurs readers, pour des lectures rapides et des données à jour
- Accepte la possibilité d’incohérences temporaires afin d’optimiser la vitesse de réponse
- Enregistre sur stdout/stderr les événements de démarrage/arrêt du service et les changements d’état, avec affichage en temps réel des failovers, récupérations et changements d’état de synchronisation
- Permet de simuler des scénarios de bascule master-replica à l’aide d’un proxy
Aucun commentaire pour le moment.