Scala Akka http请求StreamTcpException

Scala Akka http请求StreamTcpException,scala,playframework,akka,akka-http,connection-timeout,Scala,Playframework,Akka,Akka Http,Connection Timeout,我正在学习Akka库,我已经使用Play framework在我的系统中设置了一个本地服务器,我正在 使用Akka库编写客户端应用程序 implicit val system = ActorSystem("testing") implicit val materializer = ActorMaterializer() import system.dispatcher val serverHttpRequests = files.map { file =>

我正在学习Akka库,我已经使用Play framework在我的系统中设置了一个本地服务器,我正在 使用Akka库编写客户端应用程序

implicit val system = ActorSystem("testing")
implicit val materializer = ActorMaterializer()
import system.dispatcher

  val serverHttpRequests = files.map { file =>
    (
    HttpRequest (
      HttpMethods.POST,
      uri = Uri(Url),
      entity = HttpEntity(
        ContentTypes.`text/plain(UTF-8)`,
        getChartData(file)                  // reading file from local file system
      )
    ), file.getName
   )
  }

  val res = Source(serverHttpRequests)
    .via(Http().cachedHostConnectionPool[String]("localhost", 9001))
    .runForeach {
      case (Success(response), fileName) => logger.info(s"$fileName, $response")
        response.discardEntityBytes()
      case (Failure(ex), fileName) => logger.info(s"$fileName failed with $ex")
    }
文件很少,从本地服务器获取响应需要1分钟以上, 对于这些文件,我得到以下例外情况
文件名与akka.stream.StreamTcpException一起失败:连接已关闭,但出现错误:远程主机已强制关闭现有连接

我尝试将客户端和服务器的超时时间增加到300秒。
客户端
application.conf

akka.http.client.idle-timeout = 300s
akka.http.client.connecting-timeout = 300s
akka.http.host-connection-pool.idle-timeout = 300s
akka.http.host-connection-pool.client.idle-timeout = 300s
play.server.akka.https.idleTimeout = 300s
play.server.akka.requestTimeout = 300s
play.server.akka.terminationTimeout = 300s
akka.http.server.bind-timeout = 300s
服务器
application.conf

akka.http.client.idle-timeout = 300s
akka.http.client.connecting-timeout = 300s
akka.http.host-connection-pool.idle-timeout = 300s
akka.http.host-connection-pool.client.idle-timeout = 300s
play.server.akka.https.idleTimeout = 300s
play.server.akka.requestTimeout = 300s
play.server.akka.terminationTimeout = 300s
akka.http.server.bind-timeout = 300s
对于上面的代码,我正在尝试处理10个文件,每个文件的大小小于20KB,并返回响应 从服务器,每个文件的平均大小将小于
120 KB
。 我还读到Akka
IO.selectors
将通过发送心跳来保持连接的活力,

我正在试图理解此异常的确切原因并处理它。

如果您查看
akka.stream.impl.io.TcpStages
您将看到
StreamTcpException(s“connection closed with error:$cause”)
异常在由于io错误而关闭连接时被抛出


如果查看
akka.stream.impl.io.TcpStages
中的
akka.http.host connection pool.max connections
,您可能会看到当由于io错误关闭连接时,会抛出
StreamTcpException(s“连接关闭时出错:$cause”)
异常


也许您可以尝试将
akka.http.host connection pool.max connections

增加,我尝试将
akka.http.host connection pool.max connections
从默认值4增加到6、8和12,但仍然出现异常shlrmm,您考虑过尝试卷曲端点吗?我尝试过将
akka.http.host connection pool.max connections
从默认值4增加到6、8和12,但仍然出现异常shlrmm,您考虑过尝试卷曲端点吗?