38
38
import io .lettuce .core .metrics .MetricCollector ;
39
39
import io .lettuce .core .resource .Delay .StatefulDelay ;
40
40
import io .lettuce .core .tracing .Tracing ;
41
+ import io .netty .channel .socket .SocketChannel ;
41
42
import io .netty .resolver .AddressResolverGroup ;
43
+ import io .netty .resolver .dns .DefaultDnsCache ;
44
+ import io .netty .resolver .dns .DefaultDnsCnameCache ;
45
+ import io .netty .resolver .dns .DnsAddressResolverGroup ;
46
+ import io .netty .resolver .dns .DnsNameResolverBuilder ;
42
47
import io .netty .util .HashedWheelTimer ;
43
48
import io .netty .util .Timer ;
44
49
import io .netty .util .concurrent .DefaultEventExecutorGroup ;
80
85
* @author Mark Paluch
81
86
* @author Yohei Ueki
82
87
* @author Euiyoung Nam
88
+ * @author Hari Mani
83
89
* @since 3.4
84
90
*/
85
91
public class DefaultClientResources implements ClientResources {
@@ -113,8 +119,10 @@ public class DefaultClientResources implements ClientResources {
113
119
/**
114
120
* Default {@link AddressResolverGroup}.
115
121
*/
116
- public static final AddressResolverGroup <?> DEFAULT_ADDRESS_RESOLVER_GROUP = AddressResolverGroupProvider
117
- .addressResolverGroup ();
122
+ public static final AddressResolverGroup <?> DEFAULT_ADDRESS_RESOLVER_GROUP = new DnsAddressResolverGroup (
123
+ new DnsNameResolverBuilder ().datagramChannelType (Transports .datagramChannelClass ())
124
+ .socketChannelType (Transports .socketChannelClass ().asSubclass (SocketChannel .class ))
125
+ .cnameCache (new DefaultDnsCnameCache ()).resolveCache (new DefaultDnsCache ()));
118
126
119
127
static {
120
128
@@ -136,8 +144,6 @@ public class DefaultClientResources implements ClientResources {
136
144
137
145
private final EventPublisherOptions commandLatencyPublisherOptions ;
138
146
139
- private final DnsResolver dnsResolver ;
140
-
141
147
private final EventBus eventBus ;
142
148
143
149
private final boolean sharedEventLoopGroupProvider ;
@@ -250,14 +256,8 @@ protected DefaultClientResources(Builder builder) {
250
256
metricEventPublisher = null ;
251
257
}
252
258
253
- if (builder .dnsResolver == null ) {
254
- dnsResolver = DnsResolvers .UNRESOLVED ;
255
- } else {
256
- dnsResolver = builder .dnsResolver ;
257
- }
258
-
259
259
if (builder .socketAddressResolver == null ) {
260
- socketAddressResolver = SocketAddressResolver .create (dnsResolver );
260
+ socketAddressResolver = SocketAddressResolver .create (DnsResolvers . UNRESOLVED );
261
261
} else {
262
262
socketAddressResolver = builder .socketAddressResolver ;
263
263
}
@@ -304,8 +304,6 @@ public static class Builder implements ClientResources.Builder {
304
304
305
305
private int computationThreadPoolSize = DEFAULT_COMPUTATION_THREADS ;
306
306
307
- private DnsResolver dnsResolver = DnsResolvers .UNRESOLVED ;
308
-
309
307
private EventBus eventBus ;
310
308
311
309
private EventExecutorGroup eventExecutorGroup ;
@@ -441,25 +439,6 @@ public Builder computationThreadPoolSize(int computationThreadPoolSize) {
441
439
return this ;
442
440
}
443
441
444
- /**
445
- * Sets the {@link DnsResolver} that is used to resolve hostnames to {@link java.net.InetAddress}. Defaults to
446
- * {@link DnsResolvers#UNRESOLVED}
447
- *
448
- * @param dnsResolver the DNS resolver, must not be {@code null}.
449
- * @return {@code this} {@link Builder}.
450
- * @since 4.3
451
- * @deprecated since 6.1. Configure {@link AddressResolverGroup} instead.
452
- */
453
- @ Deprecated
454
- @ Override
455
- public Builder dnsResolver (DnsResolver dnsResolver ) {
456
-
457
- LettuceAssert .notNull (dnsResolver , "DnsResolver must not be null" );
458
-
459
- this .dnsResolver = dnsResolver ;
460
- return this ;
461
- }
462
-
463
442
/**
464
443
* Sets the {@link EventBus} that can be used across different instances of the RedisClient.
465
444
*
@@ -606,10 +585,10 @@ public ClientResources.Builder socketAddressResolver(SocketAddressResolver socke
606
585
* @param threadFactoryProvider a provider to obtain a {@link java.util.concurrent.ThreadFactory} for a
607
586
* {@code poolName}, must not be {@code null}.
608
587
* @return {@code this} {@link ClientResources.Builder}.
609
- * @since 6.1.1
610
588
* @see #eventExecutorGroup(EventExecutorGroup)
611
589
* @see #eventLoopGroupProvider(EventLoopGroupProvider)
612
590
* @see #timer(Timer)
591
+ * @since 6.1.1
613
592
*/
614
593
@ Override
615
594
public ClientResources .Builder threadFactoryProvider (ThreadFactoryProvider threadFactoryProvider ) {
@@ -679,13 +658,12 @@ public DefaultClientResources build() {
679
658
* <p>
680
659
* Note: The resulting {@link DefaultClientResources} retains shared state for {@link Timer},
681
660
* {@link CommandLatencyRecorder}, {@link EventExecutorGroup}, and {@link EventLoopGroupProvider} if these are left
682
- * unchanged. Thus you need only to shut down the last created {@link ClientResources} instances. Shutdown affects any
661
+ * unchanged. Thus, you need only to shut down the last created {@link ClientResources} instances. Shutdown affects any
683
662
* previously created {@link ClientResources}.
684
663
* </p>
685
664
*
686
665
* @return a {@link DefaultClientResources.Builder} to create new {@link DefaultClientResources} whose settings are
687
666
* replicated from the current {@link DefaultClientResources}.
688
- *
689
667
* @since 5.1
690
668
*/
691
669
@ Override
@@ -694,8 +672,8 @@ public DefaultClientResources.Builder mutate() {
694
672
Builder builder = new Builder ();
695
673
696
674
builder .afterBuild (() -> this .shutdownCheck = false ).commandLatencyRecorder (commandLatencyRecorder ())
697
- .commandLatencyPublisherOptions (commandLatencyPublisherOptions ()).dnsResolver ( dnsResolver ())
698
- .eventBus ( eventBus ()). eventExecutorGroup (eventExecutorGroup ()).reconnectDelay (reconnectDelay )
675
+ .commandLatencyPublisherOptions (commandLatencyPublisherOptions ()).eventBus ( eventBus ())
676
+ .eventExecutorGroup (eventExecutorGroup ()).reconnectDelay (reconnectDelay )
699
677
.socketAddressResolver (socketAddressResolver ()).nettyCustomizer (nettyCustomizer ())
700
678
.threadFactoryProvider (threadFactoryProvider ).timer (timer ()).tracing (tracing ())
701
679
.addressResolverGroup (addressResolverGroup ());
@@ -787,15 +765,6 @@ public int computationThreadPoolSize() {
787
765
return LettuceLists .newList (eventExecutorGroup .iterator ()).size ();
788
766
}
789
767
790
- /**
791
- * @deprecated since 6.7 replaced by{@link AddressResolverGroup} instead.
792
- **/
793
- @ Deprecated
794
- @ Override
795
- public DnsResolver dnsResolver () {
796
- return dnsResolver ;
797
- }
798
-
799
768
@ Override
800
769
public EventBus eventBus () {
801
770
return eventBus ;
0 commit comments