...

Source file src/google.golang.org/grpc/resolver/dns/dns_resolver.go

Documentation: google.golang.org/grpc/resolver/dns

     1  /*
     2   *
     3   * Copyright 2018 gRPC authors.
     4   *
     5   * Licensed under the Apache License, Version 2.0 (the "License");
     6   * you may not use this file except in compliance with the License.
     7   * You may obtain a copy of the License at
     8   *
     9   *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   *
    17   */
    18  
    19  // Package dns implements a dns resolver to be installed as the default resolver
    20  // in grpc.
    21  package dns
    22  
    23  import (
    24  	"time"
    25  
    26  	"google.golang.org/grpc/internal/resolver/dns"
    27  	"google.golang.org/grpc/resolver"
    28  )
    29  
    30  // SetResolvingTimeout sets the maximum duration for DNS resolution requests.
    31  //
    32  // This function affects the global timeout used by all channels using the DNS
    33  // name resolver scheme.
    34  //
    35  // It must be called only at application startup, before any gRPC calls are
    36  // made. Modifying this value after initialization is not thread-safe.
    37  //
    38  // The default value is 30 seconds. Setting the timeout too low may result in
    39  // premature timeouts during resolution, while setting it too high may lead to
    40  // unnecessary delays in service discovery. Choose a value appropriate for your
    41  // specific needs and network environment.
    42  func SetResolvingTimeout(timeout time.Duration) {
    43  	dns.ResolvingTimeout = timeout
    44  }
    45  
    46  // NewBuilder creates a dnsBuilder which is used to factory DNS resolvers.
    47  //
    48  // Deprecated: import grpc and use resolver.Get("dns") instead.
    49  func NewBuilder() resolver.Builder {
    50  	return dns.NewBuilder()
    51  }
    52  
    53  // SetMinResolutionInterval sets the default minimum interval at which DNS
    54  // re-resolutions are allowed. This helps to prevent excessive re-resolution.
    55  //
    56  // It must be called only at application startup, before any gRPC calls are
    57  // made. Modifying this value after initialization is not thread-safe.
    58  func SetMinResolutionInterval(d time.Duration) {
    59  	dns.MinResolutionInterval = d
    60  }
    61  

View as plain text