akka/akka-http

Support client-side load balancing with the connection pool

Open

#2,828 opened on Nov 26, 2019

View on GitHub
 (3 comments) (0 reactions) (0 assignees)Scala (598 forks)batch import
1 - triagedhelp wantedt:clientt:coret:docs

Repository metrics

Stars
 (1,311 stars)
PR merge metrics
 (Avg merge 1d 10h) (2 merged PRs in 30d)

Description

How it could work:

  • Allow customization of DNS resolution (see also #92) which may return multiple addresses per host
  • Allow overriding of target addresses when creating a connection
  • In the pool, use different target addresses per slot
  • Maybe a custom scheduling is also needed so that sequential requests don't all go the same then-idle connection

One way that users could hack in the first parts without changes to akka-http would be to use a custom ClientTransport returning a Flow that would transparently connect to different addresses each time it is materialized.

See also #1226

Contributor guide