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?
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users