Enum DnsNameResolverChannelStrategy

java.lang.Object
java.lang.Enum<DnsNameResolverChannelStrategy>
io.netty.resolver.dns.DnsNameResolverChannelStrategy
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<DnsNameResolverChannelStrategy>

public enum DnsNameResolverChannelStrategy extends java.lang.Enum<DnsNameResolverChannelStrategy>
Strategy that influence how Channels are used during queries.
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    Use a new Channel per resolution or per explicit query.
    Use the same underlying Channel for all queries produced by a single DnsNameResolver instance.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    valueOf(java.lang.String name)
    Returns the enum constant of this type with the specified name.
    Returns an array containing the constants of this enum type, in the order they are declared.

    Methods inherited from class java.lang.Enum

    clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • ChannelPerResolver

      public static final DnsNameResolverChannelStrategy ChannelPerResolver
      Use the same underlying Channel for all queries produced by a single DnsNameResolver instance.

      As the same Channel is used for all queries we will also use the same source port for all of these. To minimize the risk of spoofing integrators should ideally use multiple resolvers randomly, so that there is source port randomization following the recommendations of RFC5452 Section 9.2.

    • ChannelPerResolution

      public static final DnsNameResolverChannelStrategy ChannelPerResolution
      Use a new Channel per resolution or per explicit query. As of today this is similar to what the DefaultNameResolver (JDK default) does. As we will need to open and close a new socket for each resolution it will come with a performance overhead. That said using this strategy should be the most robust and also guard against problems that can arise in kubernetes (or similar) setups.
  • Constructor Details

    • DnsNameResolverChannelStrategy

      private DnsNameResolverChannelStrategy()
  • Method Details

    • values

      public static DnsNameResolverChannelStrategy[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static DnsNameResolverChannelStrategy valueOf(java.lang.String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
      java.lang.NullPointerException - if the argument is null