Package io.netty.resolver
Class RoundRobinInetAddressResolver
- java.lang.Object
-
- io.netty.resolver.SimpleNameResolver<java.net.InetAddress>
-
- io.netty.resolver.InetNameResolver
-
- io.netty.resolver.RoundRobinInetAddressResolver
-
- All Implemented Interfaces:
NameResolver<java.net.InetAddress>
,java.io.Closeable
,java.lang.AutoCloseable
public class RoundRobinInetAddressResolver extends InetNameResolver
ANameResolver
that resolvesInetAddress
and force Round Robin by choosing a single address randomly inSimpleNameResolver.resolve(String)
andSimpleNameResolver.resolve(String, Promise)
if multiple are returned by theNameResolver
. UseInetNameResolver.asAddressResolver()
to create aInetSocketAddress
resolver
-
-
Field Summary
Fields Modifier and Type Field Description private NameResolver<java.net.InetAddress>
nameResolver
-
Constructor Summary
Constructors Constructor Description RoundRobinInetAddressResolver(EventExecutor executor, NameResolver<java.net.InetAddress> nameResolver)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes all the resources allocated and used by this resolver.protected void
doResolve(java.lang.String inetHost, Promise<java.net.InetAddress> promise)
Invoked bySimpleNameResolver.resolve(String)
to perform the actual name resolution.protected void
doResolveAll(java.lang.String inetHost, Promise<java.util.List<java.net.InetAddress>> promise)
Invoked bySimpleNameResolver.resolveAll(String)
to perform the actual name resolution.private static int
randomIndex(int numAddresses)
-
Methods inherited from class io.netty.resolver.InetNameResolver
asAddressResolver
-
Methods inherited from class io.netty.resolver.SimpleNameResolver
executor, resolve, resolve, resolveAll, resolveAll
-
-
-
-
Field Detail
-
nameResolver
private final NameResolver<java.net.InetAddress> nameResolver
-
-
Constructor Detail
-
RoundRobinInetAddressResolver
public RoundRobinInetAddressResolver(EventExecutor executor, NameResolver<java.net.InetAddress> nameResolver)
- Parameters:
executor
- theEventExecutor
which is used to notify the listeners of theFuture
returned bySimpleNameResolver.resolve(String)
nameResolver
- theNameResolver
used for name resolution
-
-
Method Detail
-
doResolve
protected void doResolve(java.lang.String inetHost, Promise<java.net.InetAddress> promise) throws java.lang.Exception
Description copied from class:SimpleNameResolver
Invoked bySimpleNameResolver.resolve(String)
to perform the actual name resolution.- Specified by:
doResolve
in classSimpleNameResolver<java.net.InetAddress>
- Throws:
java.lang.Exception
-
doResolveAll
protected void doResolveAll(java.lang.String inetHost, Promise<java.util.List<java.net.InetAddress>> promise) throws java.lang.Exception
Description copied from class:SimpleNameResolver
Invoked bySimpleNameResolver.resolveAll(String)
to perform the actual name resolution.- Specified by:
doResolveAll
in classSimpleNameResolver<java.net.InetAddress>
- Throws:
java.lang.Exception
-
randomIndex
private static int randomIndex(int numAddresses)
-
close
public void close()
Description copied from interface:NameResolver
Closes all the resources allocated and used by this resolver.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceNameResolver<java.net.InetAddress>
- Overrides:
close
in classSimpleNameResolver<java.net.InetAddress>
-
-