Package io.netty.resolver.dns
Class RoundRobinDnsAddressResolverGroup
- java.lang.Object
-
- io.netty.resolver.AddressResolverGroup<java.net.InetSocketAddress>
-
- io.netty.resolver.dns.DnsAddressResolverGroup
-
- io.netty.resolver.dns.RoundRobinDnsAddressResolverGroup
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class RoundRobinDnsAddressResolverGroup extends DnsAddressResolverGroup
AAddressResolverGroup
ofDnsNameResolver
s that supports random selection of destination addresses if multiple are provided by the nameserver. This is ideal for use in applications that use a pool of connections, for which connecting to a single resolved address would be inefficient.
-
-
Constructor Summary
Constructors Constructor Description RoundRobinDnsAddressResolverGroup(ChannelFactory<? extends DatagramChannel> channelFactory, DnsServerAddressStreamProvider nameServerProvider)
RoundRobinDnsAddressResolverGroup(DnsNameResolverBuilder dnsResolverBuilder)
RoundRobinDnsAddressResolverGroup(java.lang.Class<? extends DatagramChannel> channelType, DnsServerAddressStreamProvider nameServerProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AddressResolver<java.net.InetSocketAddress>
newAddressResolver(EventLoop eventLoop, NameResolver<java.net.InetAddress> resolver)
We need to override this method, notDnsAddressResolverGroup.newNameResolver(EventLoop, ChannelFactory, DnsServerAddressStreamProvider)
, because we need to eliminate possible caching ofNameResolver.resolve(java.lang.String)
byInflightNameResolver
created inDnsAddressResolverGroup.newResolver(EventLoop, ChannelFactory, DnsServerAddressStreamProvider)
.-
Methods inherited from class io.netty.resolver.dns.DnsAddressResolverGroup
newNameResolver, newResolver, newResolver
-
Methods inherited from class io.netty.resolver.AddressResolverGroup
close, getResolver
-
-
-
-
Constructor Detail
-
RoundRobinDnsAddressResolverGroup
public RoundRobinDnsAddressResolverGroup(DnsNameResolverBuilder dnsResolverBuilder)
-
RoundRobinDnsAddressResolverGroup
public RoundRobinDnsAddressResolverGroup(java.lang.Class<? extends DatagramChannel> channelType, DnsServerAddressStreamProvider nameServerProvider)
-
RoundRobinDnsAddressResolverGroup
public RoundRobinDnsAddressResolverGroup(ChannelFactory<? extends DatagramChannel> channelFactory, DnsServerAddressStreamProvider nameServerProvider)
-
-
Method Detail
-
newAddressResolver
protected final AddressResolver<java.net.InetSocketAddress> newAddressResolver(EventLoop eventLoop, NameResolver<java.net.InetAddress> resolver) throws java.lang.Exception
We need to override this method, notDnsAddressResolverGroup.newNameResolver(EventLoop, ChannelFactory, DnsServerAddressStreamProvider)
, because we need to eliminate possible caching ofNameResolver.resolve(java.lang.String)
byInflightNameResolver
created inDnsAddressResolverGroup.newResolver(EventLoop, ChannelFactory, DnsServerAddressStreamProvider)
.- Overrides:
newAddressResolver
in classDnsAddressResolverGroup
- Throws:
java.lang.Exception
-
-