/ / Comment obtenir une concurrence simultanée sortante élevée avec Akka IO (Http) - akka, akka-io

Comment obtenir une forte concurrence sortante avec Akka IO (Http) - Akka, Akka-io

Donné:

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

Si je devais faire:

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

Je m'attendrais à ce que le code déclenche 25 requêtes asynchrones. Qu'est-ce qui se passe à la place est que quatre les demandes sont déclenchées. Ils attendent une réponse. Lorsque la réponse à tous les 4 revient, quatre autres sont envoyés jusqu'à ce que les 25 soient traités.

J’ai essayé d’ajuster la configuration de Spray pour créer un répartiteur personnalisé, mais cela n’a eu aucun effet ...

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

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

Comment puis-je configurer Akka / Spray pour envoyer les 25 requêtes de manière asynchrone?

Utilisation de: Akka 2.2.3, Spray 1.2.0

Réponses:

2 pour la réponse № 1

Vous exécutez le paramètre de configuration max de connexions pour le connecteur hôte en spray (il est de 4 par défaut).

Voici comment vous le changez: spray.can.host-connector.max-connections=25