Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-users] HttpClient support for multi-homed hosts

I am looking into in contributing a change to add support for multi-homed destinations to Jetty HttpClient. This would seem to involve replacing SocketAddressResolver with something that uses InetAddress.getAllByName(String).

I was thinking of an implementation that tries each address in order (giving each one a full connectTimeout) until one connection succeeds.

This appears to require making incompatible changes to the public API. For one, HttpClient exposes a getter and setter for its SocketAddressResolver. For another, implementations of HttpClientTransport could assume that there would be only one attempt to call HttpClientTransport.connect(SocketAddress, Map<String, Object>) per destination. For example, HttpClientTransportOverHTTP2 aborts the HttpDestination on a connection failure.

Happy Eyeballs would break even more assumptions made by HttpClientTransport implementations.

There's also the minor issue that it isn't possible to get a collection of InetSocketAddress for a multi-homed hostname where each InetSocketAddress knows its hostname.

Do the Jetty developers have any comments or suggestions? Is there any such change that would have a chance of being accepted?

Back to the top