17 puntos por xguru 2025-05-08 | 1 comentarios | Compartir por WhatsApp
  • Herramienta de pooling de transacciones + sharding + balanceo de carga para PostgreSQL, escrita en Rust + Tokio, que administra eficientemente cientos de bases de datos y cientos de miles de conexiones
  • Funciona de forma similar a PgBouncer, pero además es un proxy especializado para PostgreSQL en la capa de aplicación (OSI L7) que también soporta análisis de consultas y replicación
  • Se puede desplegar fácilmente con Kubernetes y Docker, y permite manejar con una sola configuración la composición de clústeres, el balanceo de carga, la replicación y la administración de múltiples shards
  • Junto con su propia función de administración de replicación lógica, permite ampliar con sharding un clúster PostgreSQL existente sin interrupciones

Funciones principales

  • Balanceo de carga

    • Distribución del tráfico basada en consultas PostgreSQL en OSI Layer 7
    • SELECT se enruta automáticamente a las réplicas, mientras que INSERT/UPDATE y similares van al nodo principal
    • Soporta estrategias como round robin, random, least active connections, entre otras
    • Health checks en tiempo real y failover automático ante fallas
  • Pooling de transacciones

    • Soporta pooling por sesión/transacción, de forma similar a PgBouncer
    • Puede atender cientos de miles de clientes con solo unas pocas conexiones PostgreSQL
  • Sharding y replicación

    • Mediante análisis de SQL, extrae la shard key y envía automáticamente la consulta al shard correspondiente
    • En consultas entre shards, combina los resultados en memoria y entrega una sola respuesta al usuario
    • El comando COPY también se procesa dividido por shard
    • Soporte de replicación lógica: permite ampliar una base de datos existente con sharding sin tiempo de inactividad
  • Cambios de configuración en tiempo real

    • Usa configuración .toml al estilo PgBouncer y permite cambiar la configuración sin reiniciar
    • Se pueden configurar autenticación por usuario, conexiones por base de datos e información de shards
  • Monitoreo

    • Soporta el puerto de administración estándar de PgBouncer + OpenMetrics
    • Incluye ejemplos de integración con Datadog y dashboards

1 comentarios

 
kaydash 2025-05-08

Estoy usando patroni en una configuración multimáster.
Si es una configuración con muchas solicitudes de lectura, parece que podría valer la pena usarlo como maxscale.