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

如何使用Akka IO(Http)获得高出站并发性,akka,akka-io,Akka,Akka Io,鉴于: 如果我要做: val system = ActorSystem("test") val http = IO(Http)(system) def fetch = http ! HttpRequest(GET, "http://0.0.0.0:8080/loadtest") 我预计该代码将触发25个异步请求。相反,会发生四个请求被触发的情况。他们等待回应。当对所有4个的响应返回时,将再发送4个,直到处理完所有25个 我尝试调整Spray的配置以创建自定义调度程序,但没有效果 (0 to 2

鉴于:

如果我要做:

val system = ActorSystem("test")
val http = IO(Http)(system)
def fetch = http ! HttpRequest(GET, "http://0.0.0.0:8080/loadtest")
我预计该代码将触发25个异步请求。相反,会发生四个请求被触发的情况。他们等待回应。当对所有4个的响应返回时,将再发送4个,直到处理完所有25个

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

(0 to 25).foreach(_ => fetch)
如何配置Akka/Spray以异步发送所有25个请求


使用:Akka 2.2.3,Spray 1.2.0

您正在运行Spray中主机连接器的最大连接配置设置(默认为4)

这是您如何更改它的:
spray.can.host连接器最大连接数=25

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

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