【问题标题】:Setting connectionPool crashes Slick 3.0设置 connectionPool 会导致 Slick 3.0 崩溃
【发布时间】:2015-07-30 20:38:13
【问题描述】:

我将 Slick 3.0 与 MySql 一起使用,但性能很差,我想对其进行调整。我用

初始化数据库
val db = Database.forConfig("horridDBStuff")

然后在application.conf我有

horridDBStuff = {
    url = "jdbc:mysql://my.db.address:3306/myschema"
    driver = "com.mysql.jdbc.Driver"
    connectionPool = disabled
    keepAliveConnection = true
    properties = {
        user = "me"
        password = "me"
    }
}

Slick 文档说在部署中你应该启用连接池,所以这就是我想要尝试的。但是,它没有给出如何执行此操作的示例。我试过注释掉这条线,或者用connectionPool = enabledconnectionPool = 10替换。所有这些只会使 Slick 崩溃并带有多页错误堆栈。任何人都知道如何正确配置连接池? (任何其他性能建议也将不胜感激 - 我尝试添加 numThreads=10 这似乎并没有改善很多,但至少不会崩溃;)

【问题讨论】:

  • 那个多页错误堆栈可能包含一些关于什么是错误的提示。自上而下仔细阅读并查看异常消息的内容,如果没有帮助,请将其放在某个地方,例如要点并在此处分享。
  • 你是对的。正如我在下面的评论中所描述的,我在 build.sbt 中省略了 HikariCP 依赖项。谢谢。

标签: mysql scala connection-pooling slick


【解决方案1】:

Slick 3.0 默认使用HikariCP。在其project page 上有大量文档可用于调整信息。只要您不介意使用 HikariCP,则根本不需要 connectionPool 参数。

话虽如此,你可以在你的 application.conf 中设置 connectionPool = HikariCP 并且不会抛出错误,尽管除了自文档之外,这似乎是多余的。

【讨论】:

  • 谢谢。问题是我没有在 build.sbt 中包含 HikariCP,所以除非我有 connectionPool = disabled,否则它会崩溃。我的 build.sbt 现在有 "com.zaxxer" % "HikariCP" % "2.3.3",我在 Slick 文档中忽略了它。它现在运行良好,我立即获得了 5 倍的加速。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2011-06-23
  • 1970-01-01
  • 2015-04-17
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
相关资源
最近更新 更多