public final class DnsResolverGroupBuilder extends Object
AddressResolverGroup which builds AddressResolvers that update DNS caches
automatically. Standard DnsNameResolver will only expire a cache entry after TTL,
meaning DNS queries after TTL will always take time to resolve. A refreshing AddressResolver
on the other hand updates the DNS cache automatically when TTL elapses,
meaning DNS queries after TTL will retrieve a refreshed result right away. If refreshing fails,
the AddressResolver will retry with refreshBackoff(Backoff).
The refreshing AddressResolver will only start auto refresh for a given hostname
on the second access before TTL to avoid auto-refreshing for queries that only happen once
(e.g., requests during server startup).
| Modifier and Type | Method and Description |
|---|---|
DnsResolverGroupBuilder |
decodeIdn(boolean decodeIdn)
Sets if the domain and host names should be decoded to unicode when received.
|
DnsResolverGroupBuilder |
dnsQueryLifecycleObserverFactory(io.netty.resolver.dns.DnsQueryLifecycleObserverFactory dnsQueryLifecycleObserverFactory)
Sets
DnsQueryLifecycleObserverFactory that is used to generate objects which can observe
individual DNS queries. |
DnsResolverGroupBuilder |
dnsServerAddressStreamProvider(io.netty.resolver.dns.DnsServerAddressStreamProvider dnsServerAddressStreamProvider)
Sets
DnsServerAddressStreamProvider which is used to determine which DNS server is used to
resolve each hostname. |
DnsResolverGroupBuilder |
hostsFileEntriesResolver(io.netty.resolver.HostsFileEntriesResolver hostsFileEntriesResolver)
Sets
HostsFileEntriesResolver which is used to first check if the hostname is locally aliased. |
DnsResolverGroupBuilder |
maxPayloadSize(int maxPayloadSize)
Sets the capacity of the datagram packet buffer in bytes.
|
DnsResolverGroupBuilder |
maxQueriesPerResolve(int maxQueriesPerResolve)
Returns the maximum allowed number of DNS queries to send when resolving a host name.
|
DnsResolverGroupBuilder |
ndots(int ndots)
Sets the number of dots which must appear in a name before an initial absolute query is made.
|
DnsResolverGroupBuilder |
negativeTtl(int negativeTtl)
Sets the TTL of the cache for the failed DNS queries in seconds.
|
DnsResolverGroupBuilder |
optResourceEnabled(boolean optResourceEnabled)
Enables the automatic inclusion of a optional records that tries to give the remote DNS server a hint
about how much data the resolver can read per response.
|
DnsResolverGroupBuilder |
queryTimeout(Duration queryTimeout)
Sets the timeout of each DNS query performed by this resolver.
|
DnsResolverGroupBuilder |
queryTimeoutMillis(long queryTimeoutMillis)
Sets the timeout of each DNS query performed by this resolver in milliseconds.
|
DnsResolverGroupBuilder |
recursionDesired(boolean recursionDesired)
Sets if this resolver has to send a DNS query with the RD (recursion desired) flag set.
|
DnsResolverGroupBuilder |
refreshBackoff(Backoff refreshBackoff)
Sets
Backoff which is used when the DnsNameResolver fails to update the cache. |
DnsResolverGroupBuilder |
resolvedAddressTypes(io.netty.resolver.ResolvedAddressTypes resolvedAddressTypes)
Sets
ResolvedAddressTypes which is the list of the protocol families of the address resolved. |
DnsResolverGroupBuilder |
searchDomains(Iterable<String> searchDomains)
Sets the list of search domains of the resolver.
|
DnsResolverGroupBuilder |
searchDomains(String... searchDomains)
Sets the search domains of the resolver.
|
DnsResolverGroupBuilder |
traceEnabled(boolean traceEnabled)
Sets if this resolver should generate detailed trace information in exception messages so that
it is easier to understand the cause of resolution failure.
|
DnsResolverGroupBuilder |
ttl(int minTtl,
int maxTtl)
Sets the minimum and maximum TTL of the cached DNS resource records in seconds.
|
public DnsResolverGroupBuilder refreshBackoff(Backoff refreshBackoff)
Backoff which is used when the DnsNameResolver fails to update the cache.public DnsResolverGroupBuilder ttl(int minTtl, int maxTtl)
1 and Integer.MAX_VALUE, which practically tells this resolver to
respect the TTL from the DNS server.public DnsResolverGroupBuilder negativeTtl(int negativeTtl)
0 which
means that the AddressResolver does not cache when DNS queries are failed.public DnsResolverGroupBuilder traceEnabled(boolean traceEnabled)
public DnsResolverGroupBuilder queryTimeout(Duration queryTimeout)
DnsNameResolverBuilder.queryTimeoutMillis(long)public DnsResolverGroupBuilder queryTimeoutMillis(long queryTimeoutMillis)
DnsNameResolverBuilder.queryTimeoutMillis(long)public DnsResolverGroupBuilder resolvedAddressTypes(io.netty.resolver.ResolvedAddressTypes resolvedAddressTypes)
ResolvedAddressTypes which is the list of the protocol families of the address resolved.DnsNameResolverBuilder.resolvedAddressTypes(ResolvedAddressTypes)public DnsResolverGroupBuilder recursionDesired(boolean recursionDesired)
DnsNameResolverBuilder.recursionDesired(boolean)public DnsResolverGroupBuilder maxQueriesPerResolve(int maxQueriesPerResolve)
DnsNameResolverBuilder.maxQueriesPerResolve(int)public DnsResolverGroupBuilder maxPayloadSize(int maxPayloadSize)
DnsNameResolverBuilder.maxPayloadSize(int)public DnsResolverGroupBuilder optResourceEnabled(boolean optResourceEnabled)
DnsNameResolverBuilder.optResourceEnabled(boolean)public DnsResolverGroupBuilder hostsFileEntriesResolver(io.netty.resolver.HostsFileEntriesResolver hostsFileEntriesResolver)
HostsFileEntriesResolver which is used to first check if the hostname is locally aliased.DnsNameResolverBuilder.hostsFileEntriesResolver(HostsFileEntriesResolver)public DnsResolverGroupBuilder dnsServerAddressStreamProvider(io.netty.resolver.dns.DnsServerAddressStreamProvider dnsServerAddressStreamProvider)
DnsServerAddressStreamProvider which is used to determine which DNS server is used to
resolve each hostname.DnsNameResolverBuilder.nameServerProvider(DnsServerAddressStreamProvider)public DnsResolverGroupBuilder dnsQueryLifecycleObserverFactory(io.netty.resolver.dns.DnsQueryLifecycleObserverFactory dnsQueryLifecycleObserverFactory)
DnsQueryLifecycleObserverFactory that is used to generate objects which can observe
individual DNS queries.DnsNameResolverBuilder.dnsQueryLifecycleObserverFactory(DnsQueryLifecycleObserverFactory)public DnsResolverGroupBuilder searchDomains(Iterable<String> searchDomains)
DnsNameResolverBuilder.searchDomains(Iterable)public DnsResolverGroupBuilder searchDomains(String... searchDomains)
DnsNameResolverBuilder.searchDomains(Iterable)public DnsResolverGroupBuilder ndots(int ndots)
DnsNameResolverBuilder.ndots(int)public DnsResolverGroupBuilder decodeIdn(boolean decodeIdn)
DnsNameResolverBuilder.decodeIdn(boolean)Copyright © 2020 LeanCloud. All rights reserved.