From 8809f4b85dc797716ba7f40ff1ee10039ffe8c59 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 2 Aug 2023 07:54:37 +0300 Subject: [PATCH] Improvement - each AddressResolver created by SequentialDnsAddressResolverFactory should share common DnsCache and DnsCnameCache instances. #5222 Signed-off-by: Sergey Kuznetsov --- .../SequentialDnsAddressResolverFactory.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/redisson/src/main/java/org/redisson/connection/SequentialDnsAddressResolverFactory.java b/redisson/src/main/java/org/redisson/connection/SequentialDnsAddressResolverFactory.java index 5fec788b6..a31087cf6 100644 --- a/redisson/src/main/java/org/redisson/connection/SequentialDnsAddressResolverFactory.java +++ b/redisson/src/main/java/org/redisson/connection/SequentialDnsAddressResolverFactory.java @@ -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 create(Class 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 newAddressResolver(EventLoop eventLoop, NameResolver resolver) throws Exception { return new LimitedInetSocketAddressResolver(asyncSemaphore, eventLoop, resolver);