@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 resolver| Modifier 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) |
asAddressResolverclose, executor, resolve, resolve, resolveAll, resolveAllprivate 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
SimpleNameResolverSimpleNameResolver.resolve(String) to perform the actual name resolution.doResolve in class SimpleNameResolver<java.net.InetAddress>java.lang.Exceptionprotected void doResolveAll(java.lang.String inetHost,
Promise<java.util.List<java.net.InetAddress>> promise)
throws java.lang.Exception
SimpleNameResolverSimpleNameResolver.resolveAll(String) to perform the actual name resolution.doResolveAll in class SimpleNameResolver<java.net.InetAddress>java.lang.Exceptionprivate static int randomIndex(int numAddresses)