Встроенная потоковая репликация PostgreSQL обеспечивает копирование данных на реплики, но не умеет автоматически переключать роли при падении мастера. Если мастер падает — реплики продолжают работать в read-only, но записи невозможны до ручного вмешательства DBA.
Patroni — это Python-демон, который автоматизирует управление PostgreSQL-кластером:
- Автоматический failover — при падении мастера Patroni промотирует самую актуальную реплику за секунды
- Distributed consensus — использует etcd/ZooKeeper/Consul для предотвращения split-brain
- Инициализация реплик — автоматическое создание реплик через pg_basebackup
- Управление конфигурацией — централизованное хранение параметров PostgreSQL в DCS
- REST API — HTTP-эндпоинты для мониторинга и управления
Типичная архитектура: 3 ноды PostgreSQL + Patroni, 3 ноды etcd (могут быть на тех же серверах), HAProxy или PgBouncer для маршрутизации клиентских подключений.
Оставить комментарий