- Microsserviço em formato sidecar projetado para detectar em tempo real o estado de clusters PostgreSQL
- Permite verificar imediatamente se o host está ativo, se é master ou réplica e o tempo de atraso da réplica
- Estrutura leve e de alto desempenho: uso de memória de cerca de 9MiB e baixa carga de CPU por requisição, processando até 9000 requisições por segundo
- Todos os dados são fornecidos por meio de respostas baseadas em memória, minimizando a latência das requisições
- Em segundo plano, consulta periodicamente o estado dos hosts PostgreSQL e expõe os resultados via API HTTP (respostas Plain/JSON)
- Principais endpoints da API
/master: retorna o host master atual
/replica: retorna uma réplica selecionada pelo algoritmo round-robin
/sync_by_time, /sync_by_bytes: retorna uma réplica com base no estado de sincronização por tempo ou bytes
/hosts: lista o estado de todos os hosts (JSON)
/status: consulta o estado detalhado de um host específico
- Configuração baseada em variáveis de ambiente: permite controle detalhado de timeout de conexão, limite de atraso permitido, intervalo de polling e mais
- Design lock-free com um único writer e múltiplos readers, para respostas de leitura rápidas e manutenção de dados atualizados
- Aceita a possibilidade de inconsistência temporária dos dados em troca de otimização da velocidade de resposta
- Registra no stdout/stderr os eventos de início e encerramento do serviço e as mudanças de estado, exibindo em tempo real failover, recuperação e mudanças no estado de sincronização
- É possível simular cenários de troca entre master e réplica com base em proxy
Ainda não há comentários.