PostgreSQL High Availability Cluster

Streaming Replication · Patroni Failover · Connection Pooling

APPLICATIONS Web App FastAPI / Django Celery Workers Background Tasks POOLING PgBouncer :6432 - Transaction HAProxy TCP Load Balancer POSTGRESQL CLUSTER PRIMARY PostgreSQL 16 Read/Write :5432 synchronous_commit = on max_connections = 200 Replica 1 Hot Standby :5433 Read-Only lag < 1s Same AZ Replica 2 Hot Standby :5434 Read-Only lag < 1s Cross AZ S3 / MinIO WAL Archive + Backups ORCHESTRATION Patroni Automatic Failover Leader Election + etcd etcd Cluster 3-node consensus Distributed Config Store MONITORING pg_exporter Prometheus Grafana Dashboards SQL R/W R/O WAL stream cascade archive health check / promote / demote Legend Application Pooling / Storage Database (R/W) Database (R/O) Failover / Consensus Monitoring WAL Replication Cascade Replication Health Check / Failover

Репликация

  • • Синхронный streaming replication
  • • WAL archiving в S3/MinIO
  • • Hot Standby реплики (read-only)
  • • Каскадная репликация между AZ
  • • Задержка реплики < 1 секунды

Отказоустойчивость

  • • Patroni — автоматический failover
  • • etcd — распределённый консенсус (3 узла)
  • • Автоматический выбор лидера
  • • Zero-downtime переключение
  • • Point-in-time recovery (PITR)

Инфраструктура

  • • PgBouncer — пул соединений (transaction)
  • • HAProxy — TCP балансировщик
  • • Prometheus + Grafana мониторинг
  • • pg_exporter для метрик PostgreSQL
  • • Alerting на lag и failover события