【问题标题】:Large response with akka http使用 akka http 的大响应
【发布时间】:2017-03-27 04:17:52
【问题描述】:

我正在测试 akka-http,平均响应大小约为 156KB。如果我按顺序运行测试,我也可以在使用 akka-http 实现的客户端中获得响应。

但如果我在端点上运行并发请求(8 个请求),我只能得到前三个的响应。

在本地测试运行。

这是服务器代码;

val text = Source.fromInputStream(getClass.getResourceAsStream("/data/data.txt")).mkString

  val route =
    path("build") {
      get {
        complete {
          Future {
            println("Finished")
            //HttpEntity.Strict(ContentTypes.`text/html(UTF-8)`, ByteString(text))
            HttpEntity(ContentTypes.`text/html(UTF-8)`, text)
          }

        }
      }
    }

这是客户端代码;

(1 to 8).map { i =>
    val res = buildRequest.map { br =>
          println(br)
          TestResult(true, startTime, System.currentTimeMillis, d, None)
        }.recoverWith { case t =>
          println(t)
          Future.successful(TestResult(false, startTime, System.currentTimeMillis, d, Some(t.getMessage)))
        }
}

..
..

def buildRequest =  Source.single(HttpRequest(uri = "/build") -> 1)
  .via(poolClientFlow)
  .runWith(Sink.head)

【问题讨论】:

    标签: scala akka-http


    【解决方案1】:

    您包含的客户端代码不会使用响应的实体,这可能会导致您遇到问题。您需要消耗整个响应实体或丢弃它。 here 提供有关此问题的进一步说明以及解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 2016-06-03
      • 2018-07-08
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多