Ich versuche, meine Scala-Anwendung mit einem Postgres-Cluster zu verbinden, der aus einem Master-Knoten und drei Slaves/Read-Replikate besteht. Meine application.conf sieht wie folgt heute:Scala Slick-Konfiguration für Postgres-Slaves/Read Replicas
slick {
dbs {
default {
driver = "com.company.division.db.ExtendedPgDriver$"
db {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://"${?DB_ADDR}":"${?DB_PORT}"/"${?DB_NAME}
user = ${?DB_USERNAME}
password = ${?DB_PASSWORD}
}
}
}
}
Basierend auf Postgres' documentation, kann ich den Master und Slaves alle in einer JDBC-URL definieren, die mir einige Failover-Funktionen geben wird, wie folgt aus:
jdbc:postgresql://host1:port1,host2:port2/database
Allerdings, wenn ich durch meine Lese Verbindungen trennen wollen und Schreibfähigkeiten, ich habe zwei JDBC-URLs zu definieren, wie folgt aus:
jdbc:postgresql://node1,node2,node3/database?targetServerType=master
jdbc:postgresql://node1,node2,node3/database?targetServerType=preferSlave&loadBalanceHosts=true
Wie kann ich zwei JDBC-URLs innerhalb Slick definieren ? Sollte ich zwei separate Entitäten unter slick.dbs definieren, oder kann meine slick.dbs.default.db Entität mehrere mehrere URLs definiert haben?