Pgbouncer против pgpool II

Всем привет,

Интересно, есть ли у кого-то из вас опыт использования pgpool II вместо pgbouncer в связке с Discourse? Если да, то какие первые впечатления?

Рассматривает ли ваша команда возможность перехода на него в будущем и если да, то почему?

Спасибо,
Исмаэль

pgpool II не поддерживает пул транзакций. Без пула транзакций его ценность в высоконагруженных хостинг-средах крайне ограничена, и он лишь добавит сложности.

На стандартном «самостоятельно размещённом» Discourse вы будете испытывать трудности уже при 30–60 активных соединениях, в то время как PostgreSQL не будет испытывать с этим проблем. Нет необходимости добавлять пулер соединений, усложняя вашу конфигурацию.

Большое спасибо, Сэм. Действительно, как вы и сказали, для небольшого числа соединений это может не иметь смысла. Кроме того, учитывая пулирование транзакций, в данном случае есть только один победитель.

Однако, насколько мне известно, pgbouncer не поддерживает высокую доступность (HA), тогда как pgpool II — поддерживает. А как насчёт использования pgbouncer «перед» pgpool для реализации этой функции? Какая рекомендация по подходу с высокой доступностью лучше всего подходит для Discourse?

Discourse поддерживает высокую доступность (HA) из коробки с помощью глобальной конфигурации.

Смотрите: GitHub - discourse/rails_failover · GitHub

И изучите глобальные настройки здесь: discourse/config/discourse_defaults.conf at main · discourse/discourse · GitHub

Вам нужно будет настроить два экземпляра pgbouncer в режиме высокой доступности для обработки огромного количества соединений.