Improvement - each AddressResolver created by SequentialDnsAddressResolverFactory should share common DnsCache and DnsCnameCache instances. #5222

Signed-off-by: Sergey Kuznetsov <sergey.kuznetsov@infobip.com>
pull/5226/head
Nikita Koksharov 2 years ago committed by Sergey Kuznetsov
parent 9d2316f6e7
commit 8809f4b85d

@ -21,8 +21,7 @@ import io.netty.resolver.AddressResolver;
import io.netty.resolver.AddressResolverGroup;
import io.netty.resolver.InetSocketAddressResolver;
import io.netty.resolver.NameResolver;
import io.netty.resolver.dns.DnsAddressResolverGroup;
import io.netty.resolver.dns.DnsServerAddressStreamProvider;
import io.netty.resolver.dns.*;
import io.netty.util.concurrent.EventExecutor;
import io.netty.util.concurrent.Promise;
import org.redisson.misc.AsyncSemaphore;
@ -91,7 +90,13 @@ public class SequentialDnsAddressResolverFactory implements AddressResolverGroup
@Override
public AddressResolverGroup<InetSocketAddress> create(Class<? extends DatagramChannel> channelType, DnsServerAddressStreamProvider nameServerProvider) {
DnsAddressResolverGroup group = new DnsAddressResolverGroup(channelType, nameServerProvider) {
DnsNameResolverBuilder dnsResolverBuilder = new DnsNameResolverBuilder();
dnsResolverBuilder.channelType(channelType)
.nameServerProvider(nameServerProvider)
.resolveCache(new DefaultDnsCache(0, Integer.MAX_VALUE, 0))
.cnameCache(new DefaultDnsCnameCache(0, Integer.MAX_VALUE));
DnsAddressResolverGroup group = new DnsAddressResolverGroup(dnsResolverBuilder) {
@Override
protected AddressResolver<InetSocketAddress> newAddressResolver(EventLoop eventLoop, NameResolver<InetAddress> resolver) throws Exception {
return new LimitedInetSocketAddressResolver(asyncSemaphore, eventLoop, resolver);

Loading…
Cancel
Save