У меня есть несколько медленных HTTP-вызовов (для хоста-1), и, чтобы избежать блокировки других быстрых HTTP-вызовов (также для хост-1), я хочу создать для этой цели отдельный пул HTTP-соединений.
Согласно сообщению Akka-http - конфигурация пулов запросов и уровня хоста , мне может потребоваться использовать некоторые другие настройки для нового пула соединений, чтобы избежать совместного использования с базовым глобальным пулом соединений.
Подходит ли приведенный ниже фрагмент кода для этого?
case class HttpConnection(host: String)(implicit val dispatcher: ExecutionContext, mat: ActorMaterializer) {
val system = mat.system
private val http: HttpExt = Http(mat.system)
// use a specific user agent to make it different from the global connection pool
private val userAgent = `User-Agent`(ProductVersion("akka-http", "1.0", "connection-pool"))
private val settings = ConnectionPoolSettings(system).withConnectionSettings(ClientConnectionSettings(system).withUserAgentHeader(Some(userAgent)))
def singleRequest(request: HttpRequest): Future[HttpResponse] =
http.singleRequest(request, settings = settings)
}