После failover приложение пишет в бывшего лидера и получает ошибку read-only
Три узла PostgreSQL под Patroni, перед ними HAProxy:
listen postgres_write
bind *:5000
server pg1 10.0.0.11:5432 check
server pg2 10.0.0.12:5432 check
server pg3 10.0.0.13:5432 check
После автоматического переключения лидера часть запросов на запись падает с cannot execute INSERT in a read-only transaction. Как настроить HAProxy?
- HTTP-проверка к REST API Patroni по пути лидера
- Добавить balance leastconn в секцию
- Уменьшить интервал TCP-проверки до 100 мс
- Оставить в секции только pg1 как лидера
