17 pontos por xguru 2025-05-08 | 1 comentários | Compartilhar no WhatsApp
  • Ferramenta de pooling de transações + sharding + balanceamento de carga para PostgreSQL escrita em Rust + Tokio, capaz de gerenciar com eficiência centenas de bancos de dados e centenas de milhares de conexões
  • Funciona de forma semelhante ao PgBouncer, mas é um proxy especializado em PostgreSQL na camada de aplicação (OSI L7) que também oferece suporte a análise de consultas e replicação
  • Pode ser implantado facilmente com Kubernetes e Docker e permite tratar configuração de cluster, balanceamento de carga, replicação e gerenciamento de múltiplos shards em uma única configuração
  • Com seu próprio recurso de gerenciamento de replicação lógica, é possível expandir um cluster PostgreSQL existente com sharding sem interrupção

Principais recursos

  • Balanceamento de carga

    • Distribuição de tráfego com base em consultas PostgreSQL na camada OSI 7
    • SELECT é roteado automaticamente para réplicas, enquanto INSERT/UPDATE e similares vão para o nó primário
    • Suporta estratégias como round robin, random e least active connections
    • Health checks em tempo real e failover automático em caso de falha
  • Pooling de transações

    • Assim como o PgBouncer, oferece pooling por sessão/transação
    • Pode atender centenas de milhares de clientes com apenas algumas conexões PostgreSQL
  • Sharding e replicação

    • Por meio da análise de SQL, extrai a shard key e encaminha automaticamente a consulta para o shard correspondente
    • Consultas entre shards combinam os resultados na memória e entregam ao usuário uma única resposta
    • O comando COPY também é processado de forma dividida por shard
    • Suporte a replicação lógica: permite expandir um banco existente com sharding sem downtime
  • Alterações de configuração em tempo real

    • Usa configuração .toml no estilo PgBouncer e permite alterar as configurações sem reiniciar
    • É possível configurar autenticação por usuário, conexões por banco de dados e informações de shard
  • Monitoramento

    • Suporte à porta de administração padrão do PgBouncer + OpenMetrics
    • Inclui exemplos de integração com Datadog e dashboards

1 comentários

 
kaydash 2025-05-08

Estou usando patroni em uma configuração multi-master.
Se for uma configuração com muitas requisições de leitura, parece algo que valeria a pena testar, como o maxscale.