Nous avons maître (lecture en écriture) et esclave (readonly) Postgres 10 bases de données. L'esclave est une réplication en ligne de Master.
Maintenant, notre application (C # webapi) se connecte au Master uniquement directement. Nous voulons exécuter toutes les requêtes de sélection sur l'esclave pour distribuer la charge parmi notre matériel.
Pgbouncer est-il ok pour ça? Un autre outil?
pGBouncer ne peut pas faire cela et, en effet, il s'agit d'une fonctionnalité discutable. Comment pouvez-vous dire de manière fiable une déclaration comme
SELECT pg_create_physical_replication_slot('aname');
ne modifiera pas votre base de données?
Il y a PGPool qui dispose d'une telle fonctionnalité, vous pourriez enquêter.
La meilleure technique est généralement destinée à votre application d'utiliser deux connexions de base de données: une pour la lecture et une des modifications de données. Cela ne vous met pas à la merci d'un outil qui essaie de deviner.