resolver.go 939 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package resolver
  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. // KubernetesScheme stands for k8s scheme.
  12. KubernetesScheme = "k8s"
  13. // EndpointSepChar is the separator cha in endpoints.
  14. EndpointSepChar = ','
  15. subsetSize = 32
  16. )
  17. var (
  18. // EndpointSep is the separator string in endpoints.
  19. EndpointSep = fmt.Sprintf("%c", EndpointSepChar)
  20. dirBuilder directBuilder
  21. disBuilder discovBuilder
  22. k8sBuilder kubeBuilder
  23. )
  24. // RegisterResolver registers the direct and discov schemes to the resolver.
  25. func RegisterResolver() {
  26. resolver.Register(&dirBuilder)
  27. resolver.Register(&disBuilder)
  28. resolver.Register(&k8sBuilder)
  29. }
  30. type nopResolver struct {
  31. cc resolver.ClientConn
  32. }
  33. func (r *nopResolver) Close() {
  34. }
  35. func (r *nopResolver) ResolveNow(options resolver.ResolveNowOptions) {
  36. }