如何使用Akka IO(Http)获得高出站并发性

时间:2014-11-05 00:34:31

标签: akka akka-io

假设:

val system = ActorSystem("test")
val http = IO(Http)(system)
def fetch = http ! HttpRequest(GET, "http://0.0.0.0:8080/loadtest")

如果我这样做:

(0 to 25).foreach(_ => fetch)

我希望代码可以触发25个异步请求。相反,会发生 四个 请求。他们等待回应。当对所有4的响应回来时,再发送四个,直到所有25个都被处理完毕。

我尝试使用Spray的配置进行调整以创建自定义调度程序,但这没有效果......

outbound-http-dispatcher {
  type = Dispatcher
  executor = "thread-pool-executor"
  throughput = 250
}

spray.can {
  host-connector-dispatcher = outbound-http-dispatcher
  manager-dispatcher = outbound-http-dispatcher
}

如何配置Akka / Spray以异步方式发送所有25个请求?

使用:Akka 2.2.3,Spray 1.2.0

1 个答案:

答案 0 :(得分:2)

您正在使用spray中的主机连接器的最大连接配置设置(默认情况下为4)。

这是你改变它的方式: spray.can.host-connector.max-connections=25