Есть проект, развернутый на двух серверах в разных географических точках, на входе cloudflare,
www.project.ru - основной
и
backup.project.ru - резерв
Я хочу сделать отказоустойчивое решение в случае падания основного сервера
На текущий момент настроена репликация master(www)-slave(backup)
Команда репликации:
pg_basebackup -U replicator_user -D /data_dir -S replication_slot -X stream -P -Fp -R
postgres.conf
wal_level = replica
hot_standby = on
hot_standby_feedback = on
по логике если основной(www) сервер "падает" cloudflare переключает все запросы на резервный backup, сайт прекрасно выдает актуальную информацию, но писать в базу данных нельзя, даже если между серверами теряется связь, выдается ошибка
ERROR: cannot execute UPDATE in a read-only transaction
Чего бы хотелось:
Минимум: в случае если связь теряется, чтобы в базу reserve можно было писать + когда www оживет, новые данные туда загрузились
В идеале: чтобы оба сервера работали одновременно синхронизируя между собой данные, и в случае если кто-то из них упадет, после восстановление данные актуализировались
Все что нахожу в мануалах, только master-slave или танцы с бубном вручную.
Подскажите пожалуйста, как это реализовать?