1
0

resolver.go 1.1 KB

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