Files
go-zero/zrpc/resolver/internal/resolver.go
2025-01-22 13:36:13 +08:00

52 lines
1.0 KiB
Go

package internal
import (
"fmt"
"google.golang.org/grpc/resolver"
)
const (
// DirectScheme stands for direct scheme.
DirectScheme = "direct"
// DiscovScheme stands for discov scheme.
DiscovScheme = "discov"
// EtcdScheme stands for etcd scheme.
EtcdScheme = "etcd"
// KubernetesScheme stands for k8s scheme.
KubernetesScheme = "k8s"
// EndpointSepChar is the separator cha in endpoints.
EndpointSepChar = ','
subsetSize = 32
)
var (
// EndpointSep is the separator string in endpoints.
EndpointSep = fmt.Sprintf("%c", EndpointSepChar)
directResolverBuilder directBuilder
discovResolverBuilder discovBuilder
etcdResolverBuilder etcdBuilder
)
func register() {
resolver.Register(&directResolverBuilder)
resolver.Register(&discovResolverBuilder)
resolver.Register(&etcdResolverBuilder)
}
type nopResolver struct {
cc resolver.ClientConn
closeFunc func()
}
func (r *nopResolver) Close() {
if r.closeFunc != nil {
r.closeFunc()
}
}
func (r *nopResolver) ResolveNow(_ resolver.ResolveNowOptions) {
}