2017-07-31 4 views
1

J'ai une base de données PostgreSQL répliquée, avec un maître et deux réplicas. Je souhaite qu'Ecto utilise le maître pour les requêtes d'écriture et utilise des esclaves (peut-être avec le maître) pour les lire, éventuellement avec une option de pondération pour équilibrer les requêtes.Ecto utilise plusieurs nœuds

Est-ce réalisable grâce à la configuration? Je n'arrive pas à le trouver dans la documentation ou par googling. Je utilise Ecto 2.1.

+0

Je ne pense pas que ce soit possible directement dans Ecto/PostgreSQL. Bien qu'il existe certains outils listés sur https://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling qui peuvent servir de proxy sql pour le master et les réplicas. –

Répondre

1

Pas par configuration. Mais vous pouvez définir plusieurs repos dans votre configuration et utiliser les différents repos dans les instructions select sample. Cela vous aidera au moins à diriger les instructions read et write vers deux nœuds différents.

+0

Cela se produit lorsque vous avez un nombre statique de réplicas. Cela ne sera pas utile lorsque vous devez modifier la configuration de manière dynamique. – vfsoraki

+0

Bien sûr, si vous souhaitez répartir la charge sur les réplicas en lecture, vous devez utiliser un équilibreur de charge qui ne fait pas nécessairement partie de votre application Elixir. – dschniepp

+0

Il crée une configuration un peu plus complexe pour une application à deux répliques, pour commencer. Merci quand même! – vfsoraki