PSQLException:致命:对不起,太多的客户已经是Akka HTTP

时间:2018-01-11 11:58:32

标签: postgresql scala akka-stream akka-http

我有一个应用程序连接到PostgreSQL数据库,API和Akka流使用以使用Twitter4J提取推文。将提取的推文写入数据库,然后使用Slick查询它们。使用Akka HTTP我创建了一个API来向db发送查询。所以我的问题是,在几次请求后我得到了这个错误:

enter image description here

我不确定问题出在哪里以及为什么它会在我完成关闭Actor系统时发生。

object Main extends ApiRoute {

  def main(args: Array[String]): Unit = {
    implicit val system = ActorSystem()
    implicit val materializer = ActorMaterializer()
    implicit val executionContext = system.dispatcher
    val twitterStream = TwitterStreamFilters.configureTwitterStream()
    val counter = new Counter
    twitterStream.addListener(counter)
    val bindingFuture = Http().bindAndHandle(routes, "localhost", 8080)
    println("Server started!")
    StdIn.readLine()
    bindingFuture
      .flatMap(_.unbind())
      .onComplete(_ => system.terminate())
  } 

和application.conf文件:

scalaxdb = {
  dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
  properties = {
    driver = "org.postgresql.Driver"
    url = "jdbc:postgresql://localhost/twitter2.0?user=user&password=password"
  }
}

我将不胜感激任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以尝试以下配置吗?

scalaxdb = {
  dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
  properties = {
    driver = "org.postgresql.Driver"
    url = "jdbc:postgresql://localhost/twitter2.0?user=user&password=password"
  }
  numThreads = 10
}

因此,使用numThreads,我将我的连接限制为10。

您还应该显示与数据库进行通信的代码吗?