Как настроить в Pgpool маршрутизация запросов чтения на реплике и мастере 50:50?
Добрый день, появилась задача путем пг-пула:
Связка pgpool идет на haproxy, а haproxy на кластер в patroni( 1 мастер, 2 слейва). Pgpool напрямую не видит кластер.
1. разделить запросы на чтение и запись между мастер базой и репликой, примерно 50:50.
2. настроить балансировку запросов на чтение мастера и реплики (на разные эндпоинты haproxy)
3. Failover автоматическое подключение обратно отключившегося эндпоинта haproxy.
Haproxy + pgpool находятся на одной машине.
Порты используемые на эндпоинтах 5000 и 5001. В случае если хапрокси отдаст пгпулу ошибку, то пгпул выкидывает данную ноду из кластера и отдает роль мастера другому, до возобновления работы упавшей ноды.
Перекурил кучу мануалов, можете ли дать направление?
backend_hostname0 = 'localhost'
backend_port0 = 5000
backend_weight0 = 1 тут указывается вес, что принимаем 100% запросов, так же как и в примере ниже, следовательно балансировка где-то 50/50%.
backend_data_directory0 = '/var/lib/pgsql/data'
backend_flag0 = 'ALLOW_TO_FAILOVER'