/ / Come ottenere una concorrenza elevata in uscita con Akka IO (Http) - akka, akka-io

Come ottenere un'alta concorrenza in uscita con Akka IO (Http) - akka, akka-io

Dato:

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

Se dovessi fare:

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

Mi aspetto che il codice spari 25 richieste asincrone. Quello che succede invece è quello quattro le richieste vengono messe fuori servizio. Aspettano una risposta. Quando viene ricevuta la risposta a tutti e 4, ne vengono inviati altri quattro fino a quando non vengono elaborati tutti e 25.

Ho provato a modificare la configurazione di Spray per creare un dispatcher personalizzato, ma questo non ha avuto alcun effetto ...

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

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

Come posso configurare Akka / Spray per inviare tutte e 25 le richieste in modo asincrono?

Utilizzo: Akka 2.2.3, Spray 1.2.0

risposte:

2 per risposta № 1

Stai eseguendo l'impostazione di configurazione massima delle connessioni per il connettore host in spray (è 4 per impostazione predefinita).

Ecco come lo cambi: spray.can.host-connector.max-connections=25