@UnstableApi public class RoundRobinInetAddressResolver extends InetNameResolver
NameResolver
that resolves InetAddress
and force Round Robin by choosing a single address
randomly in SimpleNameResolver.resolve(String)
and SimpleNameResolver.resolve(String, Promise)
if multiple are returned by the NameResolver
.
Use InetNameResolver.asAddressResolver()
to create a InetSocketAddress
resolverModifier and Type | Field and Description |
---|---|
private NameResolver<java.net.InetAddress> |
nameResolver |
Constructor and Description |
---|
RoundRobinInetAddressResolver(EventExecutor executor,
NameResolver<java.net.InetAddress> nameResolver) |
Modifier and Type | Method and Description |
---|---|
protected void |
doResolve(java.lang.String inetHost,
Promise<java.net.InetAddress> promise)
Invoked by
SimpleNameResolver.resolve(String) to perform the actual name resolution. |
protected void |
doResolveAll(java.lang.String inetHost,
Promise<java.util.List<java.net.InetAddress>> promise)
Invoked by
SimpleNameResolver.resolveAll(String) to perform the actual name resolution. |
private static int |
randomIndex(int numAddresses) |
asAddressResolver
close, executor, resolve, resolve, resolveAll, resolveAll
private final NameResolver<java.net.InetAddress> nameResolver
public RoundRobinInetAddressResolver(EventExecutor executor, NameResolver<java.net.InetAddress> nameResolver)
executor
- the EventExecutor
which is used to notify the listeners of the Future
returned by
SimpleNameResolver.resolve(String)
nameResolver
- the NameResolver
used for name resolutionprotected void doResolve(java.lang.String inetHost, Promise<java.net.InetAddress> promise) throws java.lang.Exception
SimpleNameResolver
SimpleNameResolver.resolve(String)
to perform the actual name resolution.doResolve
in class SimpleNameResolver<java.net.InetAddress>
java.lang.Exception
protected void doResolveAll(java.lang.String inetHost, Promise<java.util.List<java.net.InetAddress>> promise) throws java.lang.Exception
SimpleNameResolver
SimpleNameResolver.resolveAll(String)
to perform the actual name resolution.doResolveAll
in class SimpleNameResolver<java.net.InetAddress>
java.lang.Exception
private static int randomIndex(int numAddresses)