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



给定:

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个的响应返回时,再发送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/Sspray以异步发送所有25个请求?

使用:Akka 2.2.3,Spray 1.2.0

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

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

最新更新