我正在寻找使用典型的主/从 mysql 架构配置 Slick 3 的最佳方法。基本上我想将写入发送到一个 mysql 服务器并读取到另一个服务器并相信这两个服务器是同步的。
我已经阅读了 [this][1],但我认为是针对 Slick 2 的。我已经阅读了 Slick 官方文档,但我没有看到任何关于该主题的信息。
现在,有了一个数据库(没有主从),我在 application.conf 中有这个。
slick {
dbs {
default {
driver = "slick.driver.MySQLDriver$"
db {
driver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost/new_chat"
user = "new_chat"
password = "new_chat"
}
}
}
}
我正在执行这样的查询:
PersistenceUtils.run(conversationMembers += conversationMember)
持久化工具:
def run[R](a: DBIOAction[R, NoStream, Nothing])
(implicit chatContext: ChatContext, ec: ExecutionContext): Future[R] = {
val result = chatContext.db.run(a)
result.onFailure({ case e => logger.error(s"error executing query: ${a.getDumpInfo.mainInfo}", e) })
result
}
有一种方法可以通过在 application.conf 中进行配置来做到这一点吗?我不希望开发中的主/从,只希望在暂存和生产中。我读过有关 ReplicationDriver 的内容,但我在 Slick 文档中没有看到任何内容 :S
谁能给我一些线索? :P
谢谢
最佳答案
像下面这样配置你的 jdbc url:
jdbc:mysql:replication://master,slave1,slave2,slave3/<database>
并将驱动程序设置为:
com.mysql.jdbc.ReplicationDriver
完成上述操作后,您所要做的就是将需要转到从机的查询标记为只读。因此,所有只读的 jdbc 连接都被委托(delegate)给从属机器,而不只读的连接被发送给主控机。
关于mysql - 使用 MySQL 在 Slick 3 中做主/从的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878334/