Improvement - show log warning "DNS TCP fallback on UDP query timeout disabled" if Netty version is lower 4.1.105

pull/5661/head
Nikita Koksharov 12 months ago
parent a6a215f05f
commit 1e32d8d7dc

@ -18,6 +18,8 @@ package org.redisson.connection;
import io.netty.channel.socket.DatagramChannel;
import io.netty.channel.socket.SocketChannel;
import io.netty.resolver.dns.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
@ -27,13 +29,21 @@ import io.netty.resolver.dns.*;
*/
public class DnsAddressResolverGroupFactory implements AddressResolverGroupFactory {
static final Logger log = LoggerFactory.getLogger(DnsAddressResolverGroupFactory.class);
@Override
public DnsAddressResolverGroup create(Class<? extends DatagramChannel> channelType,
Class<? extends SocketChannel> socketChannelType,
DnsServerAddressStreamProvider nameServerProvider) {
DnsNameResolverBuilder dnsResolverBuilder = new DnsNameResolverBuilder();
try {
dnsResolverBuilder.getClass().getMethod("socketChannelType", Class.class, boolean.class);
dnsResolverBuilder.socketChannelType(socketChannelType, true);
} catch (NoSuchMethodException e) {
log.warn("DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.");
dnsResolverBuilder.socketChannelType(socketChannelType);
}
dnsResolverBuilder.channelType(channelType)
.socketChannelType(socketChannelType, true)
.nameServerProvider(nameServerProvider)
.resolveCache(new DefaultDnsCache())
.cnameCache(new DefaultDnsCnameCache());

@ -18,6 +18,8 @@ package org.redisson.connection;
import io.netty.channel.socket.DatagramChannel;
import io.netty.channel.socket.SocketChannel;
import io.netty.resolver.dns.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
@ -27,13 +29,21 @@ import io.netty.resolver.dns.*;
*/
public class RoundRobinDnsAddressResolverGroupFactory implements AddressResolverGroupFactory {
static final Logger log = LoggerFactory.getLogger(RoundRobinDnsAddressResolverGroupFactory.class);
@Override
public DnsAddressResolverGroup create(Class<? extends DatagramChannel> channelType,
Class<? extends SocketChannel> socketChannelType,
DnsServerAddressStreamProvider nameServerProvider) {
DnsNameResolverBuilder dnsResolverBuilder = new DnsNameResolverBuilder();
try {
dnsResolverBuilder.getClass().getMethod("socketChannelType", Class.class, boolean.class);
dnsResolverBuilder.socketChannelType(socketChannelType, true);
} catch (NoSuchMethodException e) {
log.warn("DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.");
dnsResolverBuilder.socketChannelType(socketChannelType);
}
dnsResolverBuilder.channelType(channelType)
.socketChannelType(socketChannelType, true)
.nameServerProvider(nameServerProvider)
.resolveCache(new DefaultDnsCache())
.cnameCache(new DefaultDnsCnameCache());

@ -26,6 +26,8 @@ import io.netty.resolver.dns.*;
import io.netty.util.concurrent.EventExecutor;
import io.netty.util.concurrent.Promise;
import org.redisson.misc.AsyncSemaphore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.InetAddress;
import java.net.InetSocketAddress;
@ -40,6 +42,8 @@ import java.util.concurrent.Callable;
*/
public class SequentialDnsAddressResolverFactory implements AddressResolverGroupFactory {
static final Logger log = LoggerFactory.getLogger(SequentialDnsAddressResolverFactory.class);
static class LimitedInetSocketAddressResolver extends InetSocketAddressResolver {
final AsyncSemaphore semaphore;
@ -100,8 +104,14 @@ public class SequentialDnsAddressResolverFactory implements AddressResolverGroup
Class<? extends SocketChannel> socketChannelType,
DnsServerAddressStreamProvider nameServerProvider) {
DnsNameResolverBuilder dnsResolverBuilder = new DnsNameResolverBuilder();
try {
dnsResolverBuilder.getClass().getMethod("socketChannelType", Class.class, boolean.class);
dnsResolverBuilder.socketChannelType(socketChannelType, true);
} catch (NoSuchMethodException e) {
log.warn("DNS TCP fallback on UDP query timeout disabled. Upgrade Netty to 4.1.105 or higher.");
dnsResolverBuilder.socketChannelType(socketChannelType);
}
dnsResolverBuilder.channelType(channelType)
.socketChannelType(socketChannelType, true)
.nameServerProvider(nameServerProvider)
.resolveCache(new DefaultDnsCache())
.cnameCache(new DefaultDnsCnameCache());

Loading…
Cancel
Save