Akka Http 客户端 + 负载均衡器

Akka Http Client + Load Balancer

使用 akka http 启动负载均衡器的正确方法是什么?目前我正在使用以下代码:

val poolClientFlow = Http().cachedHostConnectionPool[String](host, port)

source
  .map(url => HttpRequest(uri = url) -> url)
  .via(poolClientFlow)
  .to(Sink.actorRef(myActor, IsDone))
  .run()

由于我之前打开连接,负载均衡器理解我要发送到同一台机器,所以轮询无法正常工作。 我是否应该将 poolClientFlow 移动到 .via,每次打开和关闭它?

几周前我写了一个作为实验:

https://github.com/agemooij/stream-experiments/blob/master/src/main/scala/scalapenos/experiments/streams/LoadBalancingHttpClient.scala

它使用图形 DSL 来平衡多个独立连接池上的请求。