Правильный способ использования пула HTTP-соединений Akka с singleRequest - PullRequest
0 голосов
/ 26 мая 2020

У меня есть несколько медленных 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)
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...