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 }