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
A 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
  • Field Details

    • nameResolver

      private final NameResolver<java.net.InetAddress> nameResolver
  • Constructor Details

  • Method Details

    • doResolve

      protected void doResolve(java.lang.String inetHost, Promise<java.net.InetAddress> promise) throws java.lang.Exception
      Description copied from class: SimpleNameResolver
      Invoked by SimpleNameResolver.resolve(String) to perform the actual name resolution.
      Specified by:
      doResolve in class SimpleNameResolver<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 by SimpleNameResolver.resolveAll(String) to perform the actual name resolution.
      Specified by:
      doResolveAll in class SimpleNameResolver<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 interface java.lang.AutoCloseable
      Specified by:
      close in interface java.io.Closeable
      Specified by:
      close in interface NameResolver<java.net.InetAddress>
      Overrides:
      close in class SimpleNameResolver<java.net.InetAddress>