github.com/lingyao2333/mo-zero@v1.4.1/zrpc/resolver/internal/resolver.go (about)

     1  package internal
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"google.golang.org/grpc/resolver"
     7  )
     8  
     9  const (
    10  	// DirectScheme stands for direct scheme.
    11  	DirectScheme = "direct"
    12  	// DiscovScheme stands for discov scheme.
    13  	DiscovScheme = "discov"
    14  	// EtcdScheme stands for etcd scheme.
    15  	EtcdScheme = "etcd"
    16  	// KubernetesScheme stands for k8s scheme.
    17  	KubernetesScheme = "k8s"
    18  	// EndpointSepChar is the separator cha in endpoints.
    19  	EndpointSepChar = ','
    20  
    21  	subsetSize = 32
    22  )
    23  
    24  var (
    25  	// EndpointSep is the separator string in endpoints.
    26  	EndpointSep = fmt.Sprintf("%c", EndpointSepChar)
    27  
    28  	directResolverBuilder directBuilder
    29  	discovResolverBuilder discovBuilder
    30  	etcdResolverBuilder   etcdBuilder
    31  	k8sResolverBuilder    kubeBuilder
    32  )
    33  
    34  // RegisterResolver registers the direct and discov schemes to the resolver.
    35  func RegisterResolver() {
    36  	resolver.Register(&directResolverBuilder)
    37  	resolver.Register(&discovResolverBuilder)
    38  	resolver.Register(&etcdResolverBuilder)
    39  	resolver.Register(&k8sResolverBuilder)
    40  }
    41  
    42  type nopResolver struct {
    43  	cc resolver.ClientConn
    44  }
    45  
    46  func (r *nopResolver) Close() {
    47  }
    48  
    49  func (r *nopResolver) ResolveNow(options resolver.ResolveNowOptions) {
    50  }